创建流媒体应用
步骤3: 浏览支持Leanback的Android应用的内容
现在,让我们一起了解Fire TV Android应用的第一个基本组件:BrowseFragment。
在启动新创建的电视Android应用(使用Android Studio应用向导构建)后,可看到与下图非常类似的界面:

进行该操作时,我们看到的内容都在名为BrowseFragment的类中生成。BrowseFragment可创建一个界面,通过该界面,用户可轻松浏览应用中的内容(通常为视频或电影)。
BrowseFragment自身其实由两个子片段组成:HeadersFragment和RowsFragment。

HeadersFragment(可显示或隐藏)显示每一行内容的标题。通常,它包含该特定行中内容的“类别”。
RowsFragment包含内容行,通常显示为视频缩略图。随后将介绍如何使用ObjectAdapters填充内容行。
填充BrowseFragment
内容行是通过Adapters填充的横向列表,Adapters使用Presenters类(专门用于定义应用的外观)排列内容。
要填充单行内容,须使用ArrayObjectAdapter(也称为listRowAdapter)。此适配器显示单行内容。
在本示例中,假设定义一个名为“movie”的类,包含电影的所有信息(如名称和描述)。
最后,HeaderItem可用于定义行标题。例如,您可以定义“comedy”类别。
以下是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来定义内容行的显示方式。

可通过添加多个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中的所有行,并显示主界面。

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

