C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

ウィジェットはフォーカスを制御することができる.

フォーカス移動先を指定する

フォーカス移動の指示(カーソル操作等)があった場合, デフォルトでは指示のあった方向に一番近いウィジェットにフォーカスが移る.
もし, フォーカス移動の順番を変えたい場合, ウィジェットに次のフォーカス先を指定すればよい.
XML属性メソッド説明
android:nextFocusUpView#setNextFocusUpIdフォーカスを上に移動しようとしたときのフォーカス先を指定
android:nextFocusDownView#setNextFocusDownIdフォーカスを下に移動しようとしたときのフォーカス先を指定
android:nextFocusLeftView#setNextFocusLeftIdフォーカスを左に移動しようとしたときのフォーカス先を指定
android:nextFocusRightView#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>





コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

Firebase(2)

AD



管理人/副管理人のみ編集できます