android 安卓电视应用程序设计:视频细节和视频的水平列表

mkh04yzy  于 2022-12-25  发布在  Android
关注(0)|答案(2)|浏览(122)

我们正在开发一个android电视应用程序,其中我们需要一个视频的水平列表,在屏幕的顶部会有一个与视频相关的一些信息的视图。因此,当用户选择不同的视频,屏幕的顶部将更新为video.

的相关细节我们正在使用的android电视leanback库。我已经检查了DetailSupportFragment,但是一旦用户使用D-pad导航,这个片段似乎覆盖了屏幕顶部的细节部分。我们想要的是顶部细节部分应该总是可见的。关于如何自定义DetailSupportFragment的任何想法,或者是否有任何其他替代解决方案。

8qgya5xd

8qgya5xd1#

所以我使用标准的Android SDK视图,主要是通过网格布局格式的recyclerview来完成。

bihw5rsg

bihw5rsg2#

最后我解决了这个问题,下面是我的主要活动xml的样子

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#000000"
    >
    <fragment
        android:id="@+id/title_layout"
        android:name="com.stack.plextv.HeaderTitle"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_alignParentTop="true"
        android:layout_weight="1"
        />
    <FrameLayout
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/main_fragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/title_layout"
        android:layout_weight="1"
        tools:deviceIds="tv"
        >
    </FrameLayout>
</LinearLayout>

FrameLayout中,我将加载一个从VerticalGridSupportFragment扩展而来的片段,它基本上是一个Card Presenter列表。
fragment_header_title.xml
头标题片段将有文本和图像,以给予褪色的外观,我使用了FadingEdgeLayoutlink,这是一个片段类,下面是主活动中的布局和assgin

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="#000000"
    android:orientation="horizontal">
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical"
        android:paddingTop="16dp"
        ><!--        android:background="@color/icon_background"-->
        <TextView
            android:id="@+id/title_content_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="16dp"
            tools:textAllCaps="true"
            android:textStyle="bold"
            android:textSize="36sp"
            android:fontFamily="sans-serif-condensed-medium"
            />
        <TextView
            android:id="@+id/title_content_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginHorizontal="16dp"
            android:layout_marginTop="16dp"
            android:ellipsize="end"
            android:text=""
            android:textSize="19sp"
            android:fontFamily="sans-serif-condensed-medium"

            />
    </LinearLayout>
    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:requiresFadingEdge="horizontal"
        >
        <com.bosphere.fadingedgelayout.FadingEdgeLayout
            android:id="@+id/fading_edge_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:fel_edge="top|left|bottom"
            app:fel_size_top="50dp"
            app:fel_size_bottom="50dp"
            app:fel_size_right="50dp">

        <ImageView
            android:id="@+id/title_content_thumbnail"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:scaleType="centerCrop"
            />
        </com.bosphere.fadingedgelayout.FadingEdgeLayout>
    </FrameLayout>

</LinearLayout>

Header-layout

相关问题