在电视系统的开发中,不得不提到焦点问题,经常会出现焦点规则不够人性化的问题。layout布局中有nextFocus一类属性可以指定焦点规则,就是说当前获得焦点的控件,如果按遥控器上、下、左、右键后,下个焦点应该落到哪个控件上。此类属性有如下4个(使用时不必全部设置,可按需要使用):
nextFocusUp // 指定上键焦点控件
nextFocusDown // 指定下键焦点控件
nextFocusLeft // 指定左键焦点控件
nextFocusRight // 指定右键焦点控件
布局举例:
<Button
android:id="@+id/btn_1"
style="@style/style_btn"
android:layout_width="80dp"
android:layout_height="30dp"
android:nextFocusLeft="@+id/btn_2"
android:nextFocusRight="@+id/btn_3"
android:nextFocusUp="@+id/btn_4"
android:nextFocusDown="@+id/btn_2"
android:text="按钮1"
android:textColor="@color/white"
android:textSize="20sp" />
<Button
android:id="@+id/btn_2"
style="@style/style_btn"
android:layout_width="80dp"
android:layout_height="30dp"
android:nextFocusLeft="@+id/btn_3"
android:nextFocusRight="@+id/btn_3"
android:nextFocusUp="@+id/btn_1"
android:nextFocusDown="@+id/btn_4"
android:text="按钮2"
android:textColor="@color/white"
android:textSize="20sp" />
<Button
android:id="@+id/btn_3"
style="@style/style_btn"
android:layout_width="80dp"
android:layout_height="30dp"
android:nextFocusLeft="@+id/btn_2"
android:nextFocusRight="@+id/btn_2"
android:nextFocusUp="@+id/btn_1"
android:nextFocusDown="@+id/btn_4"
android:text="按钮3"
android:textColor="@color/white"
android:textSize="20sp" />
<Button
android:id="@+id/btn_4"
style="@style/style_btn"
android:layout_width="80dp"
android:layout_height="30dp"
android:nextFocusLeft="@+id/btn_2"
android:nextFocusRight="@+id/btn_3"
android:nextFocusUp="@+id/btn_2"
android:nextFocusDown="@+id/btn_1"
android:text="按钮4"
android:textColor="@color/white"
android:textSize="20sp" />