【发布时间】:2011-02-14 04:09:19
【问题描述】:
在我的 Android 应用程序中,它会自动聚焦在我的布局中的第一个 Button,并给它一个橙色轮廓。如何最好在 XML 中设置初始焦点,可以将其设置为空吗?
【问题讨论】:
在我的 Android 应用程序中,它会自动聚焦在我的布局中的第一个 Button,并给它一个橙色轮廓。如何最好在 XML 中设置初始焦点,可以将其设置为空吗?
【问题讨论】:
你可以使用requestFocus标签:
<Button ...>
<requestFocus />
</Button>
虽然它会自动聚焦您的一个按钮,但我觉得很奇怪,但我在任何视图中都没有观察到这种行为。
【讨论】:
@Someone 在某处,我尝试了以上所有方法均无济于事。我找到的修复来自 http://www.helloandroid.com/tutorials/remove-autofocus-edittext-android 。基本上,您需要在有问题的 Button 上方创建一个不可见的布局:
<LinearLayout android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px" >
<requestFocus />
</LinearLayout>
【讨论】:
EditText 的RelativeLayout 中。
将:focusable 和:focusableInTouchMode 都设置为true 并调用requestFocus。它成功了。
【讨论】:
我发现这对我来说效果最好。
在AndroidManifest.xml中<activity> element添加android:windowSoftInputMode="stateHidden"
这总是在进入活动时隐藏键盘。
【讨论】:
我只是将这行代码添加到onCreate():
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
问题解决了。
【讨论】:
使用下面的代码,
TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody);
tableRow.requestFocus();
应该可以。
【讨论】:
@Someone Someone 我用它来清除焦点:
editText.clearFocus();
它有帮助
【讨论】:
android:focusedByDefault="true"
【讨论】:
focusedByDefault 仅用于 API 级别 26 及更高级别(当前最小值为 21)。