ViewPager2,获取当前页面的视图持有者

12
当选择一个页面时,我希望在当前页面显示一张带有描述的图片。
具体来说,在这个活动中。
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
    @Override
    public void onPageSelected(int position) {
        super.onPageSelected(position);
        viewPagerAdapter.showImage(position);
    }
});

在适配器中

public void showImage(int position) {
    ViewHolder holer = getHolder(position);
    holer.imageview.setVisibility(View.VISIBLE);
}

我希望能够实现与上述相同的功能...

有没有好的解决方案?

1个回答

36

你可以像这样做

(viewPager2.get(0) as RecyclerView).findViewHolderForAdapterPosition(position)
或者
(viewPager2.get(0) as RecyclerView).layoutManager.findViewByPosition(position)

如何在Java中使用Kotlin的'viewpager2.get'方法? - silvershort
3
你可以使用viewPager2.getChildAt(0) - Kiwi Lin
3
get()只是getChildAt(index) ?: throw IndexOutOfBoundsException("Index: $index, Size: $childCount")的一个扩展函数,其作用是使代码更简洁。 - Kiwi Lin
1
mViewPager.setCurrentItem(pos); mViewPager.getChildAt(pos) ;它总是为空的。 - Rohaitas Tanoli
@RohaitasTanoli 不要更改 viewPager2.get(0) 中的数字。 - Hun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接