【问题标题】:How to manually specified the next view id for a particular direction in android?如何在android中手动指定特定方向的下一个视图ID?
【发布时间】:2014-12-19 08:52:34
【问题描述】:

在android中手动指定特定方向的下一个视图的方法或配置是什么?

例如我有三个按钮:

button1button2button3

通常,当我点击右方向时,我想将焦点从button1更改为button2,然后button3,但是如果我有一个奇怪的要求:我想将焦点从button1更改为@987654328 @,然后改成button2

一个更常见的要求是当焦点在button3时,我想在点击右方向时将焦点更改为button1

我怎样才能满足这些要求?

【问题讨论】:

  • onCreate 中获取您需要的所有按钮的视图引用并将它们存储在一个数组中。然后你可以循环遍历数组并改变焦点
  • @Panther 我有更简单的方法吗?我记得c#有个叫tabindex的属性可以控制TAB按下时的顺序。

标签: android view focus viewgroup


【解决方案1】:

您是否尝试过 android 视图的 nextFocusRight/Left/Up/Down 属性?

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:nextFocusRight="@+id/button2" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:nextFocusRight="@id/button1" />

您可以在 Java 代码中设置这些属性。

    Button button1 = (Button) findViewById(R.id.button1);
    Button button2 = (Button) findViewById(R.id.button2);
    Button button3 = (Button) findViewById(R.id.button3);

    button3.setNextFocusRightId(R.id.button1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多