android - 编辑文本 : Avoid getting focus on setText()

标签 android focus android-edittext

我有一个带有 ScrollView 的 Activity ,其中包含一些按钮和一个 EditText 所以按钮位于 EditText 组件上方。

通过单击 Button,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 不再“可点击”。

最佳答案

editText.clearFocus();

当此 View 想要放弃焦点时调用。

http://developer.android.com/reference/android/view/View.html#clearFocus()

关于android - 编辑文本 : Avoid getting focus on setText(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19423141/

相关文章:

android - EditText 的子类看起来与 Android 4 上的普通 EditText 不同

java - 选择一个联系人并将其填写到EditText中

android - SharedLib 依赖@混合模式 APK

javascript - 当焦点位于其他元素上时,保持对可编辑 DIV 的选择

Java 焦点事件监听器

PHP/CSS : Postback form doesn't reload back to same position on page (Scrolling required)

android - 如何在 Android 的 EditText 中提供放大镜效果?

android - 将 unicode 符号插入到 edittext

android - Android studio for Mac OSX 10.7.5 版本

android - 将数据从 Viewmodel 设置为 Activity android kotlin