# ViewPager2获取Item的View 站点:答源(https://www.dandroid.cn/) 原文:https://www.dandroid.cn/archives/20103 Canonical:https://www.dandroid.cn/archives/20103 作者:admin 发布日期:2023-09-12 最后更新:2023-09-12 11:26 分类:教程 内容类型:post 说明:本页是原文的纯文本镜像,供大模型与检索器完整读取;不含导航、广告、付费框。引用请以上方「原文」链接为准。 ## 正文 1.在写ViewPager2的ViewHolder的时候给ItemView设置tag为当前的ViewHolder public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); itemView.setTag(this); } } 设置之后我们就可以通过ViewPager2获取它Item的ItemView,然后getTag获取ViewHolder,获取到ViewHolder就能操作view了 2.如何通过ViewPager2获取到ItemView呢 下面代码是获取ViewPager2第一个item的ItemView RecyclerView recyclerViewImpl = (RecyclerView) binding.ViewPager2.getChildAt(0); View itemView = recyclerViewImpl.getChildAt(0); 获取第二个: RecyclerView recyclerViewImpl = (RecyclerView) binding.ViewPager2.getChildAt(0); View itemView = recyclerViewImpl.getChildAt(1); 我们需要知道两个知识点: 1).ViewPager2是由RecyclerView实现的,ViewPager2的第0个child就是RecyclerView, RecyclerView的Item对应VIewPager2的item 2).RecyclerView的第几个item就是第几个child,例如第0个item就是 getChildAt(0); 3.通过ItemView的getTag获取ViewHolder Adapter.ViewHolder viewHolder = (Adapter.ViewHolder) itemView.getTag(); 4.这些只有在ViewPager2绘制完毕后才能获取 binding.ViewPager2.post(new Runnable() { @Override public void run() { } }); --- 由 答源 DAN 底座 1.4.1 生成 · 2026-11-15T13:17:13+00:00