开发者控制台

步骤3: 浏览支持Leanback的Android应用的内容

步骤3: 浏览支持Leanback的Android应用的内容

现在,让我们一起了解Fire TV Android应用的第一个基本组件:BrowseFragment。

在启动新创建的电视Android应用(使用Android Studio应用向导构建)后,可看到与下图非常类似的界面:

启动电视Android应用后,可看到与此类似的界面。

进行该操作时,我们看到的内容都在名为BrowseFragment的类中生成。BrowseFragment可创建一个界面,通过该界面,用户可轻松浏览应用中的内容(通常为视频或电影)。

BrowseFragment自身其实由两个子片段组成:HeadersFragmentRowsFragment

BrowseFragment由两部分组成:HeadersFragment和RowsFragment。

HeadersFragment(可显示或隐藏)显示每一行内容的标题。通常,它包含该特定行中内容的“类别”。

RowsFragment包含内容行,通常显示为视频缩略图。随后将介绍如何使用ObjectAdapters填充内容行。

填充BrowseFragment

内容行是通过Adapters填充的横向列表,Adapters使用Presenters类(专门用于定义应用的外观)排列内容。

要填充单行内容,须使用ArrayObjectAdapter(也称为listRowAdapter)。此适配器显示单行内容。

在本示例中,假设定义一个名为“movie”的类,包含电影的所有信息(如名称和描述)。

最后,HeaderItem可用于定义行标题。例如,您可以定义“comedy”类别。

以下是listRowAdapterHeaderItem的直观形式:

listRowAdapter和HeaderItem的直观形式。

假设存在一种SetupMovies法,通过该方法可填充一个电影列表,然后将该列表传递给适配器。单行填充以及标题项定义所用的代码如下:

public class MainFragment extends BrowseFragment {

    private void loadRows() {

	//让我们生成影片列表
        List list = MovieList.setupMovies();

//CardPresenter定义行中项目的UI
CardPresenter cardPresenter = new CardPresenter();

//创建行的适配器
        ArrayObjectAdapter listRowAdapter
                             = new ArrayObjectAdapter(cardPresenter);

	//让我们填充适配器
	for (Movie movie:list) {
            listRowAdapter.add(movie);
        }

        //创建此行的标题    
        HeaderItem header = new HeaderItem(0, "Comedy");

      }
    }

流媒体应用通常具有多行内容。因此,需要向BrowseFragment添加多个适配器。最简单的方法是,添加可管理多个ListRowAdapters的更高级别的适配器。将该类可称为RowsAdapter

RowsAdapter包含多个ListRowAdapter,并拥有自己的Presenter来定义内容行的显示方式。

RowsAdapter包含多个ListRowAdapter,并拥有自己的Presenter来定义内容行的显示方式。

可通过添加多个listRow来填充RowsAdapter,从而合并listRowAdapters和相关HeaderItems。为此,可使用接收HeaderItem的ListRow类和ArrayObjectAdapter作为参数。

public class MainFragment extends BrowseFragment {
 ...

     //创建一个RowsAdapter
     ArrayObjectAdapter rowsAdapter
		= new ArrayObjectAdapter(new ListRowPresenter());

     //添加多行  
     rowsAdapter.add(new ListRow(headerItem1, listRowAdapter1));
     rowsAdapter.add(new ListRow(headerItem2, listRowAdapter2));


     setAdapter(mRowsAdapter);
   }

调用setAdapter将填充BrowseFragment中的所有行,并显示主界面。

启动电视Android应用后,可看到与此类似的界面。

后续步骤

继续执行下一步: 步骤4: 通过Presenter编辑用户界面