图库水平捕捉轨迹球/ dpad导航。
这是一个示例布局,在画廊的两侧都有按钮:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Gallery
android:layout_height="match_parent"
android:id="@+id/gallery"
android:layout_width="match_parent"
android:layout_weight="1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
当您使用轨迹球导航到图库时,无法转到任何一侧的按钮。我尝试将android:nextFocusLeft =“@ id / button”添加到库中。我也尝试将它添加到图库适配器的第一个视图中。
有什么方法吗?
答案 0 :(得分:1)
我想出来了,这是画廊中的一个错误。解决方法是按如下方式扩展Gallery:
public class DpadableGallery extends Gallery {
public DpadableGallery(Context context) {
super(context);
}
public DpadableGallery(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_LEFT:
if (getSelectedItemPosition()==0) {
return false;
}
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
if (getSelectedItemPosition()==(getAdapter().getCount()-1)) {
return false;
}
}
return super.onKeyDown(keyCode, event);
}
}