【问题标题】:How to initialize my ViewPager如何初始化我的 ViewPager
【发布时间】:2023-04-07 12:37:02
【问题描述】:

我有一个 Activity A,它包含一个列表和一个 Activity B,它使用片段显示来自 Activity A 的项目的详细信息。 Activity B中有一个ViewPager,可以让我左右滑动查看列表中不同的item详情。问题是在哪里以及如何初始化 Activity B 以显示我在 Activity A 中单击的项目的详细信息?

下面是我的 FragmentStatePagerAdapter 类,目前无论我在活动 A 中单击哪个项目,它总是启动第一个项目(尽管滑动功能正在工作)

private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
        Cursor data;
        ArticleDetailUpdateFragment detailUpdateFragment;

        public ScreenSlidePagerAdapter(FragmentManager fm, Cursor data) {
            super(fm);
            this.data = data;

            detailUpdateFragment = new ArticleDetailUpdateFragment();
            long id = getIntent().getLongExtra(ArticleListActivity.EXTRA_ITEM_ID, -1);
            Log.d(TAG, "the itemId received in detail activity: " + String.valueOf(id));
            detailUpdateFragment.setId(id);

            // Add the fragment to the 'fragment_container' FrameLayout
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.pager, detailUpdateFragment).commit();
        }

        @Override
        public Fragment getItem(int position) {
            detailUpdateFragment = new ArticleDetailUpdateFragment();
            data.moveToPosition(position);
            long id = data.getLong(data.getColumnIndex(ItemsContract.Items._ID));
            detailUpdateFragment.setId(id);

            return detailUpdateFragment;
        }

        @Override
        public int getCount() {
            return pageCount;
        }
    }

【问题讨论】:

    标签: android android-viewpager fragmentstatepageradapter


    【解决方案1】:

    你需要获取被点击的item的位置,假设它是一个recycler view,你可以使用这个方法来获取位置

    viewholder.getAdapterPosition()
    

    接下来,在将适配器附加到视图分页器后,您必须使用意图在活动B 中传递此位置,并将视图分页器的当前项目设置为此位置

    viewpager.setCurrentItem(position, false)
    

    我们传入 false 是因为我们不希望开头有动画

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 2013-06-01
      • 2021-07-14
      • 2011-11-11
      相关资源
      最近更新 更多