我有一个带有滚动视图的活动,其中包含一些按钮和一个EditText 因此按钮位于EditText组件上方。
通过单击按钮,EditText组件可以使用EditText.setText("foo");
不幸的是,此调用会将焦点设置为EditText组件,因此ScrollView将滚动到EditText组件(光标闪烁)。
有没有办法避免这种情况?
我试过这样的事情
public void setText(String t){
editText.setFocusable(false)
editText.setFocusableInTouchMode(false);
editText.setText(t);
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
}
但这不起作用,有时setFocusable(true)
没有影响,因此EditText不再是“可点击的”。
答案 0 :(得分:2)
editText.clearFocus();
当此视图想要放弃焦点时调用。
http://developer.android.com/reference/android/view/View.html#clearFocus()
答案 1 :(得分:0)
在您的按钮中使用以下代码
InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
请参阅以下链接
答案 2 :(得分:0)
在xml
:
<EditText
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false">
</EditText>
或
edittext.setKeyListener(null);
答案 3 :(得分:0)
在您的按钮中使用以下代码......
InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);