1

我有一个 3 页的 ViewPager2,我需要专门转换数字 2。

我正在使用 Fragments,但在 ViewPager2 的 PageTransformer 中,我们重写了该transformPage(View page, int position)方法。

所以我尝试过的是:

@Override  
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       Log.d(TAG, "onCreateView: creating the view.");
       // Inflate the layout for this fragment
       View view = inflater.inflate(R.layout.fragment_edit, container, false);
       view.setTag(2);
       //...
       return view;

并在 pageTransformer 中:

 @Override
 public void transformPage(@NonNull View page, float position) {
        System.out.println("transformPage " + page.getTag());
        if (page.getTag() != null) {
             // do something 
        }
  }

问题是 page.getTag() 始终为空。我还尝试在 Fragment 的 XML 文件的根视图中设置标签,但仍然无法正常工作。

谢谢

4

1 回答 1

0

您可以调用(page.parent as RecyclerView).getChildLayoutPosition(page)以获取页面的索引。

于 2020-10-13T06:53:00.573 回答