布局:我在 NestedScrollView 中有一個 EditText 和 2 個 RecyclerViews,它們不可見(visibility=gone)問題:當我輸入的文本超過屏幕高度時,EditText 會向下滾動到光標所在的位置。但是當我嘗試向上滾動時,什么也沒有發(fā)生。這是我制作的屏幕錄像。無法滾動:第一次輸入/粘貼長文本后??梢詽L動:重新打開已輸入文本的活動后關閉鍵盤后關閉鍵盤并再次打開后搜索類似問題產(chǎn)生:EditText 在 ScrollView 中不可滾動在 ScrollView 和 ViewFlipper 中啟用可滾動的 EditText...和具有相同答案的其他結果:...editText.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (v.getId() == R.id.editText) { v.getParent().requestDisallowInterceptTouchEvent(true); switch (event.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_UP: v.getParent().requestDisallowInterceptTouchEvent(false); break; } } return false; }});該解決方案不起作用:問題是關于 ScrollViews,而不是 NestedScrollViews。NestedScrollView 是建議的解決方案之一(我已經(jīng)在使用)當我添加上面的代碼時,EditText 有點可滾動,但只有在顯示鍵盤時才會滾動。如果不是,則無法滾動 - 嘗試滾動會導致選擇文本。滾動(鍵盤打開)移動光標。如果您需要更多信息或者我遺漏了什么,請告訴我。謝謝!
2 回答

慕尼黑5688855
TA貢獻1848條經(jīng)驗 獲得超2個贊
答案其實比我想象的要簡單。粘貼您的 xml 后(并對其進行必要的更改以構建 - 缺少維度等...)我只是更改了您的高度,EditText
錯誤wrap_content
消失了。
答案就在這里:比較EditText
在不同時間點的測量值,左邊height=match_parent
和右邊height=wrap_content
左側:EditText
在屏幕上以一定大小繪制空白,您粘貼文本,它的大小不會改變。顯示/隱藏鍵盤是屏幕生命周期中的一個重要事件,它稱為配置更改,這會導致元素被再次測量并重新繪制。
右邊:如果你改變 to 的高度,EditText
它wrap_content
會強制測量并在插入后立即重新繪制
添加回答
舉報
0/150
提交
取消