Android:如何使用可点击的网格项和远程嵌套视图(按钮,图像)制作网格视图(适用于Android TV)

时间:2015-01-05 10:10:04

标签: android

如何通过远程(适用于Android TV)使用可点击的网格项和嵌套视图(按钮,图像)制作网格视图

我只想点击图片和网格视图中的按钮项目应添加以播放我的列表如果我通过远程导航而不是通过触摸导航按钮

谢谢!!!

如果网格视图项目有两个子项目图像按钮和另一个按钮

,如何在网格视图子项目中导航到d pad

1 个答案:

答案 0 :(得分:2)

对于onClickListener等方法,触摸屏或遥控器没有区别。 对于遥控器,您需要首先聚焦,而不是点击元素。

之前我没有在电视上使用gridView,但我使用了recyclerView和scrollView。我认为他们有相同的情况。

我已经尝试使用默认的simpleAdapter来创建gridView,在我将 onItemClickListener 设置为gridView之后,我可以关注并点击每个网格项的嵌套视图没问题。

我问候你的问题是网格项与网格项中的按钮冲突。 要避免这种情况,您需要为自定义网格项视图的容器设置 android:descendantFocusability =“blocksDescendants”。它将阻止该父布局中的items语句。

如果你想在不同的语句中改变按钮,你可以给这个参数按钮: android:duplicateParentState =“true”。 这将让按钮跟随父母的陈述。

顺便说一下,不要忘记为网格项目(背景更改等)的不同语句设置一些更改,或者您不知道您关注哪个网格项目:P。

希望这会对你有所帮助:)。


PS。以下是自定义网格项布局的示例代码。也许这个例子可以帮助你理解我提到的内容。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:descendantFocusability="blocksDescendants" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" 
        android:duplicateParentState="true"/>

</LinearLayout>

2015.01.06 23:11更新:

  

如果是网格视图项,如何在网格视图子项中导航到d pad   有两个子项图像按钮和另一个按钮

对于这种情况,您不应使用 OnItemClickListener 。相反,您应该使网格项不可聚焦不可点击,而不是为两个按钮设置 OnClickListener

您可以在gridView的自定义适配器中设置参数。在getView方法中,您可以设置每个网格项视图,就像 convertView.focusable(false) convertView.clickable(false)一样。 之后,您可以设置单击侦听器并为适配器中的按钮提供要执行的方法。 不关心D-pad动作。实际上,如果有可以聚焦的元素,D-pad将自动工作。

此问题的关键点是网格项与其子元素之间的冲突。您可以只关注一个部分:网格项(父视图)或按钮(子视图)。