代码之家  ›  专栏  ›  技术社区  ›  stealthcopter

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

  •  80
  • stealthcopter  · 技术社区  · 14 年前

    在我的Android应用程序中,它会自动聚焦我布局中的第一个按钮,给它一个橙色的轮廓。如何设置初始焦点(最好是在XML中),并且可以将其设置为Nothing?

    7 回复  |  直到 9 年前
        1
  •  151
  •   mxk    14 年前

    你可以用 requestFocus 标签:

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

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

        2
  •  58
  •   Raju-san    9 年前

    @有人在某个地方,我尝试了以上所有的方法都无济于事。我找到的修复方法是 http://www.helloandroid.com/tutorials/remove-autofocus-edittext-android . 基本上,您需要在有问题的按钮上方创建一个不可见的布局:

    <LinearLayout android:focusable="true"
                  android:focusableInTouchMode="true" 
                  android:layout_width="0px"
                  android:layout_height="0px" >
        <requestFocus />
    </LinearLayout>
    
        3
  •  24
  •   Anders R. Bystrup    12 年前

    设置两者 :focusable :focusableInTouchMode 为真而召唤 requestFocus . 这就是窍门。

        4
  •  22
  •   James    11 年前

    我发现这对我最有效。

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

    这在输入活动时总是隐藏键盘。

        5
  •  11
  •   Perception    12 年前

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

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

    问题解决了。

        6
  •  6
  •   jcw    11 年前

    使用下面的代码,

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

    那应该管用。

        7
  •  3
  •   Ruobin Wang    13 年前

    @我在某个地方用这个来清除焦点的人:

    editText.clearFocus();
    

    它有帮助