当点击edittext
时,由于键盘,用户无法看到我的button
。
所以我想,当用户点击edittext
时,scrollview
绝对会以平滑的效果进入上方。
我的第一个问题我应该使用哪个听众? OnClick
,OnFocus
,OnTouch
等?
我尝试了这个代码块,但需要双击才能滚动它。首先单击打开键盘,然后单击滚动到scrollview
。
我的第二个问题任何人都对这个问题有所了解?谢谢你的帮助。
scrollView = (ScrollView) findViewById(R.id.scrollview);
et_space.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
scrollView.smoothScrollTo(0, 500);
return false;
}
});
答案 0 :(得分:3)
谢谢大家的所有答案,但我自己解决了我的问题,
首先我想说你必须使用“OnFocusListener”然后你必须像这样使用Handler;
现在,当我点击我的edittext时;键盘打开,滚动视图同时滚动到顶部:))
et_space.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus){
final Handler handler;
handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
scrollView.smoothScrollTo(0, 500);
}
};
handler.postDelayed(r, 200);
}
}
});
答案 1 :(得分:1)
试试这个在EditText的OnClickListener中使用此代码
scrollview.scrollBy(0,scrollview.getBottom());
答案 2 :(得分:0)
sv.scrollTo(5, 10);
希望这会对你有所帮助。
scrollView.post(new Runnable() {
@Override
public void run() {
sv.scrollTo(5, 10);
}
});
答案 3 :(得分:0)
像这样修改你的代码:
et_space.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
scrollView.smoothScrollTo(0, 500);
return false;
}
}
return true;
}
});
答案 4 :(得分:0)
您可以在EditText下的同一位置添加小部件。例如名为“btn_show_keyboard”的ImageView。
然后在你的btn_show_keyboard.onClick()方法中执行这个方法。
public void showSoftInput() {
mEditText.requestFocus();
mInputManager.showSoftInput(mEditText, 0);
}
在此softinputmode中设置目标活动。
android:windowSoftInputMode="adjustResize"
尝试这些,希望它有所帮助。