我有一个父活动(NavigationActivity),它有一个包含四个片段(frag1,frag2,frag3,frag4)的viewPager。
然后frag2有一个带有3个片段的嵌套ViewPager(nestedFrag1,nestedFrag2,nestedFrag3)。
nestedFrag1有一个recylerview,可以加载带有图像的卡片,图像上有一个onCLickListerner。
@Override
public void onBindViewHolder(final ViewHolder viewHolder, int i) {
Poi_MDL poi = poiItems.get(i);
viewHolder.poiTitle.setText(poi.getTitle());
viewHolder.numComments.setText("" + poi.getNumComments());
viewHolder.numLikes.setText("" + poi.getNumLikes());
ArrayList<String> images = poi.getPhotos();
if( images.get(0) != null){
Log.d("IMAGE URL", images.get(0));
Picasso.with(context)
.load(Constants.HOSTED_IMG_URL + images.get(0))
.into(viewHolder.poiImg);
}
viewHolder.poiImg.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// This is where I want to call setCurrentItem for the nestedViewPager
Log.d(LOG_TAG,"" + context.getClass());
Snackbar.make(v, "" + viewHolder.getAdapterPosition() , Snackbar.LENGTH_SHORT).show();
}
});
}
单击图像时,我想在nestedViewPage上调用setCurrentItem。
如何通过recyclerview适配器实现此目的?
答案 0 :(得分:1)
我认为这实际上取决于您的应用是什么以及您的课程有哪些责任...
我可以使用changePageForImage方法在frag2上实现类似ImageClickResolver的接口,然后将此引用发送到newstedViewPager-&gt; nestedFrag1-&gt; adapter。所以适配器有人可以根据图像来决定。或者只是使用Otto或事件总线,以便在发布图像时发出事件并让frag2听取它。
答案 1 :(得分:0)
我已经能够使用以下方法解决这个问题: