Android TV应用程序 – 无法使用远程选择列表项
作者:互联网
目前我正在开发Android TV应用.
我使用过Android Lean支持库.
我添加了一个ListView,但我无法从listView中选择任何带有真实设备遥控器的项目.但是,我可以借助鼠标在我的Android虚拟设备上选择listView项.
这是我的listView示例代码:
customViewOrders = new CustomViewOrders(getActivity().getBaseContext(), arrayViewOrders);
lstViewOrder.setAdapter(customViewOrders);
这里,arrayViewOrders是我的ArrayList,它包含从JSON webservice收到的数据.
这是我的JSON响应:
{
"order":[
{
"0":"13829CF",
"gen_id":"13829CF",
"1":"17534CF",
"2":"Complete",
"ord_status":"Complete",
"3":"Online Preview",
"sta_name":"Online Preview",
"4":"2015-10-27 00:00:00",
"image":"cinereel",
"placed_from":"web"
}
]
}
我还在AndroidManifest.xml文件中添加了以下功能:
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.hardware.faketouch"
android:required="true" />
所以,我的问题是:如何在远程帮助下在真实设备中选择任何东西(即列表项,按钮)?
解决方法:
最后,经过大量研发后,我得到了解决方案.
这是我使用Android TV遥控器进行定向导航的解决方案.
首先,你必须保持任何一个项目的焦点(即Button,TextView等),如下所示.
而且,你必须应用它的nextFocusDown,nextFocusLeft,nextFocusRight& nextFocusUp属性,以便在您单击TV远程导航按钮时触发其相关事件.
<Button
android:id="@+id/btnSignout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvUserName"
android:layout_marginTop="2dp"
android:layout_toLeftOf="@+id/ivUser"
android:width="100dp"
android:nextFocusRight="@+id/ivUser" <!-- On click of right arrow button, focus will be move to ivUser id -->
android:nextFocusUp="@+id/tvUserName" <!-- On click of up arrow button, focus will be move to tvUserName id -->
android:text="@string/signout"
android:textAppearance="?android:textAppearanceMedium">
<requestFocus></requestFocus>
</Button>
有关更多信息,请参阅:
> Android User Interface Design: The Basics of Control Focus Order,
> Creating TV Navigation.
标签:android,avd,android-tv,leanback 来源: https://codeday.me/bug/20190519/1135939.html