我正在使用Android Leanback API,而BrowseFragment让我有些头疼。不管是什么原因,我似乎无法将焦点从BrowseFragment移到它正上方的ImageButton上。由于这应该是在电视机上,用户只能通过D-pad移动焦点来导航,没有只点击按钮的选项。
在我的一个片段中,我有以下布局,它基本上创建了一个顶部行,其中包含标题、我想要关注的按钮和一个徽标图像,徽标图像后面是BrowseFragment(我在运行时将其交换到FrameLayout所在的位置)。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:orientation="vertical"
android:paddingLeft="3dp"
android:paddingRight="3dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginLeft="@dimen/lb_browse_padding_start"
android:layout_marginTop="@dimen/lb_browse_padding_top"
android:layout_marginRight="@dimen/lb_browse_padding_end"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/lb_browse_title_text_size"
android:layout_gravity="left"
android:layout_centerVertical="true"
android:id="@+id/category_title"/>
<ImageView
android:id="@+id/imageLogo"
android:layout_width="108dp"
android:layout_height="44dp"
android:layout_gravity="right"
android:layout_alignParentRight="true"
android:src="@drawable/cc_logo_focused"
android:layout_centerVertical="true"/>
<ImageButton
android:layout_width="@dimen/cc_genre_theme_search_image_width"
android:layout_height="@dimen/cc_genre_theme_search_image_height"
android:src="@drawable/search_icon_focus"
android:layout_gravity="right"
android:background="@drawable/button_color"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@id/category_title"
android:contentDescription="Search button"
android:scaleType="fitCenter"
android:focusable="true"
android:focusableInTouchMode="true"
android:adjustViewBounds="true"
android:padding="5dp"
android:clickable="true"
android:layout_centerVertical="true"
android:id="@+id/gt_search_button"
android:backgroundTintMode="add"
android:backgroundTint="@color/colorTranslucentBackground"/>
</RelativeLayout>
<FrameLayout
android:id="@+id/CategoryFragment"
android:name="android.support.v17.leanback.BrowseFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
对于如何让应用程序正确聚焦有什么想法吗?谢谢!
3条答案
按热度按时间fjnneemd1#
我最终使用了下面两个函数来解决这个问题。在这里发布,以防将来其他人也有类似的问题。
browseFragment是Fragment类中的示例变量,这些方法是该类的一部分。
编辑:更新代码以包含重试处理程序
7cwmlq892#
我也有过和你一样的问题,受你的代码启发,我做了一些调整。
在我扩展的BrowseFragment中,我有这个方法:
然后:
这样就不需要使用处理程序和计时器。
n1bvdmb63#