使用图像视图在 PageRow 元素之间导航
Posted
技术标签:
【中文标题】使用图像视图在 PageRow 元素之间导航【英文标题】:Navigate between PageRow elements with image view 【发布时间】:2017-08-03 04:45:48 【问题描述】:我想将图像添加到标题元素。我遵循this 教程并成功添加了图像。它使用ListRow
元素并且与ListRow
完美配合。
但是,当我将 ListRow
元素更改为 PageRow
时,它不会在标题之间导航。以下是一些重要的变化。可能是什么原因?
IconHeaderItemPresenter.java
@Override
public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object o)
IconHeaderItem iconHeaderItem = (IconHeaderItem)((PageRow)o).getHeaderItem();
View rootView = viewHolder.view;
...
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();
【问题讨论】:
【参考方案1】:添加这两行
view.setFocusable(true);
view.setFocusableInTouchMode(true);
到你扩展的 RowHeaderPresenter 的 onCreateViewHolder
【讨论】:
【参考方案2】:将 view.setFocusable(true);
添加到扩展的 RowHeaderPresenter 的 onCreateViewHolder
【讨论】:
以上是关于使用图像视图在 PageRow 元素之间导航的主要内容,如果未能解决你的问题,请参考以下文章
防止自定义 UINavigationBar 元素在视图之间更改