在leanback库中,我们可以在BrowseFragment中创建RowFragment,它将包含动画并展开视图 . 这是BrowseFragment中正常的RowFragment:
- 之前隐藏 Headers
-after hide header
上面的项目来自here
我尝试在没有BrowseFragment的应用程序中单独实现Rows Fragment . 我试图复制文件,但没有BrowseFragment,它现在看起来像这样:
物品之间也没有余量 . 当缩放时,第一个项目被裁剪 . 我试图在片段中添加填充,但它更加裁剪
这是我从项目中复制的主要代码:
public class PageRowFragment extends RowsSupportFragment {
private final ArrayObjectAdapter mRowsAdapter;
public PageRowFragment() {
mRowsAdapter = new ArrayObjectAdapter(new ShadowRowPresenterSelector());
setAdapter(mRowsAdapter);
setOnItemViewClickedListener(new OnItemViewClickedListener() {
@Override
public void onItemClicked(
Presenter.ViewHolder itemViewHolder,
Object item,
RowPresenter.ViewHolder rowViewHolder,
Row row) {
Toast.makeText(getActivity(), "Implement click handler", Toast.LENGTH_SHORT)
.show();
}
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
createRows();
// getMainFragmentAdapter().getFragmentHost().notifyDataReady(getMainFragmentAdapter());
}
private void createRows() {
String json = Util.inputStreamToString(getResources().openRawResource(
R.raw.page_row_example));
CardRow[] rows = new Gson().fromJson(json, CardRow[].class);
for (CardRow row : rows) {
if (row.getType() == CardRow.TYPE_DEFAULT) {
mRowsAdapter.add(createCardRow(row));
}
}
}
private Row createCardRow(CardRow cardRow) {
PresenterSelector presenterSelector = new CardPresenterSelector(getActivity());
ArrayObjectAdapter adapter = new ArrayObjectAdapter(presenterSelector);
for (Card card : cardRow.getCards()) {
adapter.add(card);
}
HeaderItem headerItem = new HeaderItem(cardRow.getTitle());
return new CardListRow(headerItem, adapter, cardRow);
}
}
我应该添加什么,所以布局将像第二张图像一样?谢谢!