[英]Navigate between PageRow elements with image view
I want to add an image to header elements. 我想将图像添加到标题元素。 I followed this tutorial and added images successfully.
我遵循了本教程并成功添加了图像。 It is using
ListRow
element and works perfect with ListRow
. 它使用
ListRow
元素,并与ListRow
完美配合。
However, when I change ListRow
elements with PageRow
, it doesn't navigate between headers. 但是,当我使用
PageRow
更改ListRow
元素时,它不会在标题之间导航。 Here are the some critical changes. 以下是一些关键的更改。 What could be the reason?
可能是什么原因?
IconHeaderItemPresenter.java IconHeaderItemPresenter.java
@Override
public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object o) {
IconHeaderItem iconHeaderItem = (IconHeaderItem)((PageRow)o).getHeaderItem();
View rootView = viewHolder.view;
...
}
MainFragment.java MainFragment.java
public void createRows(){
IconHeaderItem headerItem1 = new IconHeaderItem(1, getString(R.string.header_history), R.drawable.header_images);
PageRow pageRow1 = new PageRow(headerItem1);
mRowsAdapter.add(pageRow1);
IconHeaderItem headerItem2 = new IconHeaderItem(2, getString(R.string.header_recommendations), R.drawable.header_musics);
PageRow pageRow2 = new PageRow(headerItem2);
mRowsAdapter.add(pageRow2);
IconHeaderItem headerItem3 = new IconHeaderItem(3, getString(R.string.header_news), R.drawable.header_videos);
PageRow pageRow3 = new PageRow(headerItem3);
mRowsAdapter.add(pageRow3);
IconHeaderItem headerItem4 = new IconHeaderItem(4, getString(R.string.header_notifications), R.drawable.header_settings);
PageRow pageRow4 = new PageRow(headerItem4);
mRowsAdapter.add(pageRow4);
}
private static class PageRowFragmentFactory extends BrowseFragment.FragmentFactory {
private final BackgroundManager mBackgroundManager;
PageRowFragmentFactory(BackgroundManager backgroundManager) {
this.mBackgroundManager = backgroundManager;
}
@Override
public Fragment createFragment(Object rowObj) {
Row row = (Row)rowObj;
mBackgroundManager.setDrawable(null);
//id for news fragment
if (row.getHeaderItem().getId() == 3) {
return new SampleFragmentA();
} else {
return new SampleFragmentB();
}
}
}
add these two lines 加这两行
view.setFocusable(true);
view.setFocusableInTouchMode(true);
to the onCreateViewHolder of your extended RowHeaderPresenter 到扩展的RowHeaderPresenter的onCreateViewHolder
add view.setFocusable(true);
添加
view.setFocusable(true);
to the onCreateViewHolder of your extended RowHeaderPresenter 到扩展的RowHeaderPresenter的onCreateViewHolder
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.