Yuv*_*evy 1 android scrollview ontouchlistener
当用户点击edittext时,我希望屏幕滚动以在屏幕中间显示edittext.所以我试着听touch(setOnTouchListener,也试过onClick和onFocuse)然后smoothScrollTo屏幕将edittext放在屏幕中间.
但出于某种原因,当我将setOnTouchListener添加到edittext时,它根本没有得到焦点.
我需要修理什么?或者我怎样才能做到这一点?
这是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;
}
});
Run Code Online (Sandbox Code Playgroud)
true从该onTouch()方法返回表示在那里正在消费触摸事件.要允许事件传播到View自己的触摸侦听器,您需要return false;.
为了得到EditText后获得焦点ScrollView已经完成了它的滚动,你可以发布Runnable到ScrollView的处理要求重点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;
}
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7768 次 |
| 最近记录: |