为了账号安全,请及时绑定邮箱和手机立即绑定

EditText 在 NestedScrollView 中不可滚动

EditText 在 NestedScrollView 中不可滚动

素胚勾勒不出你 2022-12-28 15:40:12
布局:我在 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 的高度,EditTextwrap_content会强制测量并在插入后立即重新绘制

//img1.sycdn.imooc.com//63abf30c0001afe506560699.jpg

查看完整回答
反对 回复 2022-12-28
?
MMTTMM

TA贡献1869条经验 获得超4个赞

将活动设置为,

android:windowSoftInputMode="adjustResize"


查看完整回答
反对 回复 2022-12-28
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信