如何在RowsFragment中始终显示标题

May*_*aul 7 android android-fragments leanback

我正在尝试创建一个类似于Youtube应用程序的Android电视应用程序.我正在使用沙发库来做到这一点.现在问题出现了,当我试图显示单个项目的标题时,RowsFragment即使RowsFragment没有焦点.以下是将数据集加载到browseFragment中的代码

private void loadRowsCustom() {
        adapter = new ArrayObjectAdapter();

        int split = 3;
        int rowsFragmentCount = videoList.size() / split + (videoList.size() % split != 0 ? 1 : 0);

        for (int i = 0; i < rowsFragmentCount; i++) {

            ListRowPresenter lrp = new ListRowPresenter(FocusHighlight.ZOOM_FACTOR_LARGE);
            ArrayObjectAdapter rowsAdapter = new ArrayObjectAdapter(lrp);

            String category = "Category";

            for (int j = 0; j < split && (i * split + j) < videoList.size(); j++) {
                Video[] videos = videoList.get(i * split + j);
                ArrayObjectAdapter rowCollAdapter = new ArrayObjectAdapter(new VideoPresenter());
                rowCollAdapter.addAll(0, Arrays.asList(videos));
                ListRow row = new ListRow(new HeaderItem(videos[0].category),rowCollAdapter);
                rowsAdapter.add(row);
                category = videos[0].category;
            }

            ArrayObjectAdapter fragmentAdapter = new ArrayObjectAdapter();
            RowsSupportFragment rowsSupportFragment = new RowsSupportFragment();
            rowsSupportFragment.setAdapter(rowsAdapter);
            rowsSupportFragment.enableRowScaling(false);
            fragmentAdapter.add(rowsSupportFragment);
            adapter.add(new ListRow(new HeaderItem(category), fragmentAdapter));
        }

        browseSupportFragment.setAdapter(adapter);
        browseSupportFragment.setHeadersState(BrowseSupportFragment.HEADERS_ENABLED);
        browseSupportFragment.setOnSearchClickedListener(searchClickListener);
        browseSupportFragment.setOnItemViewClickedListener(browseClickListener);
        browseSupportFragment.setTitle("Google Videos");
    }
Run Code Online (Sandbox Code Playgroud)

所需和当前实现的描述如下面的屏幕截图所示:

在此输入图像描述

在此输入图像描述

Jac*_*777 5

正如Mayur Kaul已经提到的那样,您只需要致电

mRowsFragment.setExpand(true)
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,每次onAttachedToWindow(...)调用方法时(请参见android.support.v17.leanback.app.RowsFragment - ItemBridgeAdapter.AdapterListener mBridgeAdapterListener),标题标题始终会被隐藏。

所以最终的解决方案,女巫为我工作,它只是setExpand()在您的RowsFragment实现中重写方法,如下所示:

@Override
    public void setExpand(boolean expand) {
        super.setExpand(true);
    }
Run Code Online (Sandbox Code Playgroud)