在Android应用程序中设置初始焦点

时间:2010-04-30 09:31:38

标签: android focus

在我的Android应用程序中,它自动聚焦我的布局中的第一个按钮,给它一个橙色轮廓。如何最好用XML设置初始焦点,这可以设置为空吗?

8 个答案:

答案 0 :(得分:153)

您可以使用requestFocus代码:

<Button ...>
  <requestFocus />
</Button>

我觉得奇怪的是,它会自动聚焦你的一个按钮,我没有在我的任何视图中观察到这种行为。

答案 1 :(得分:58)

@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>

答案 2 :(得分:24)

:focusable:focusableInTouchMode都设为true并致电requestFocus。这样做。

答案 3 :(得分:22)

我发现这对我来说效果最好。

在AndroidManifest.xml <activity> element中添加android:windowSoftInputMode="stateHidden"

进入活动时,这总是隐藏键盘。

答案 4 :(得分:11)

我只是将这行代码添加到onCreate()

this.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

问题解决了。

答案 5 :(得分:7)

使用以下代码

TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody);
tableRow.requestFocus();

应该有用。

答案 6 :(得分:3)

@ Someone我用它来清除焦点:

editText.clearFocus();

它有帮助

答案 7 :(得分:0)

android:focusedByDefault="true"