最終更新:
moonlight_aska 2011年08月27日(土) 11:27:51履歴
ウィジェットはフォーカスを制御することができる.
フォーカス移動の指示(カーソル操作等)があった場合, デフォルトでは指示のあった方向に一番近いウィジェットにフォーカスが移る.
もし, フォーカス移動の順番を変えたい場合, ウィジェットに次のフォーカス先を指定すればよい.

もし, フォーカス移動の順番を変えたい場合, ウィジェットに次のフォーカス先を指定すればよい.
XML属性 | メソッド | 説明 |
android:nextFocusUp | View#setNextFocusUpId | フォーカスを上に移動しようとしたときのフォーカス先を指定 |
android:nextFocusDown | View#setNextFocusDownId | フォーカスを下に移動しようとしたときのフォーカス先を指定 |
android:nextFocusLeft | View#setNextFocusLeftId | フォーカスを左に移動しようとしたときのフォーカス先を指定 |
android:nextFocusRight | View#setNextFocusRightId | フォーカスを右に移動しようとしたときのフォーカス先を指定 |
- res/layout/main.xml
- 「ボタン1」に, 左カーソルで「ボタン3」, 上カーソルで「エディットテキスト2」にフォーカスが移動するように設定する.
- 「ボタン3」に, 右カーソルで「ボタン1」にフォーカスが移動するように設定する.
- 「エディットテキスト2」に, 下カーソルで「ボタン1」にフォーカスが移動するように設定する.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button android:id="@+id/button01_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ボタン1"
android:nextFocusLeft="@+id/button03_id"
android:nextFocusUp="@+id/edit02_id"
/>
<Button android:id="@+id/button02_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ボタン2"
/>
<Button android:id="@+id/button03_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ボタン3"
android:nextFocusRight="@+id/button01_id"
/>
</LinearLayout>
<EditText android:id="@+id/edit01_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="エディットテキスト1"
/>
<EditText android:id="@+id/edit02_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="エディットテキスト2"
android:nextFocusDown="@+id/button01_id"
/>
</LinearLayout>

コメントをかく