布局:我在 NestedScrollView 中有一个 EditText 和 2 个 RecyclerViews,它们不可见(visibility=gone)问题:当我输入的文本超过屏幕高度时,EditText 会向下滚动到光标所在的位置。但是当我尝试向上滚动时,什么也没有发生。这是我制作的屏幕录像。无法滚动:第一次输入/粘贴长文本后。可以滚动:重新打开已输入文本的活动后关闭键盘后关闭键盘并再次打开后搜索类似问题产生: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 是建议的解决方案之一(我已经在使用)当我添加上面的代码时,EditText 有点可滚动,但只有在显示键盘时才会滚动。如果不是,则无法滚动 - 尝试滚动会导致选择文本。滚动(键盘打开)移动光标。如果您需要更多信息或者我遗漏了什么,请告诉我。谢谢!
2 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
答案其实比我想象的要简单。粘贴您的 xml 后(并对其进行必要的更改以构建 - 缺少维度等...)我只是更改了您的高度,EditText
错误wrap_content
消失了。
答案就在这里:比较EditText
在不同时间点的测量值,左边height=match_parent
和右边height=wrap_content
左侧:EditText
在屏幕上以一定大小绘制空白,您粘贴文本,它的大小不会改变。显示/隐藏键盘是屏幕生命周期中的一个重要事件,它称为配置更改,这会导致元素被再次测量并重新绘制。
右边:如果你改变 to 的高度,EditText
它wrap_content
会强制测量并在插入后立即重新绘制
添加回答
举报
0/150
提交
取消