gpt4 book ai didi

单击edittext时android自动滚动

转载 作者:行者123 更新时间:2023-11-29 14:46:40 24 4
gpt4 key购买 nike

当用户点击 edittext 时,我希望屏幕滚动以在屏幕中间显示 edittext。所以我试着听触摸(setOnTouchListener,也试过 onClick 和 onFocuse),然后 smoothScrollTo screen 将 edittext 放在屏幕中间。

但出于某种原因,当我将 setOnTouchListener 添加到编辑文本时,它根本没有获得焦点。

我需要修复什么?或者我怎样才能做到这一点?

这是 setOnTouchListener 代码,它导致 edittext 在被点击时没有获得焦点:

    et_email.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
ScrollView scrollView = (ScrollView)getView().findViewById(R.id.ScrollViewSendDetails);
scrollView.smoothScrollTo(0, et_email.getBottom());
return true;
}
});

最佳答案

onTouch() 方法返回 true 表示触摸事件正在那里被消费。要允许事件传播到 View 自己的触摸监听器,您需要return false;

要在 ScrollView 完成滚动后让 EditText 获得焦点,您可以向 ScrollView 发送一个 Runnable 的处理程序请求焦点在 EditText 上。例如:

et_email.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
...
scrollView.smoothScrollTo(0, et_email.getTop());
scrollView.post(new Runnable() {
@Override
public void run() {
et_email.requestFocus();
}
}
);
return false;
}
}
);

关于单击edittext时android自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34298356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com