簡體   English   中英

android中的ViewPager到ViewPager2

[英]ViewPager to ViewPager2 in android

我正在將 Viewpager 遷移到 Viewpager2,目前我面臨 2 個問題,

  1. 如何使用 Cardview(水平視圖)使用 Viewpager2 顯示左右項目?
  2. 按下后,我保存了 Viewpager2 上次選擇的計數,即索引和“恢復時”,我正在調用下面的代碼。

問題 2 使用以下代碼: mBinding.viewPager.setCurrentItem(index, true);

如果選擇的索引是 3 等,它總是會索引 0。

對於問題 1,我使用下面的代碼,並且我能夠在滾動時看到左右項目也代碼:

viewPager.setClipToPadding(false);
viewPager.setClipChildren(false);
viewPager.setOffscreenPageLimit(1);

請讓我知道使用 viewpager2 是否正確。 問題 2 仍然是一個問題,有人可以幫助解決 Viewpager2 中的 1 ,2 問題嗎?

當前代碼:

@Override
    public void onResume() {
        super.onResume();
        Log.e(TAG, "onResume");
        mBinding.viewPager.setCurrentItem(index, true);
    }

    @Override
    public void onPause() {
        super.onPause();
        Log.e(TAG, "onPause");
        index = mBinding.viewPager.getCurrentItem();
    }

 mBinding.viewPager.setClipToPadding(false);
        mBinding.viewPager.setClipChildren(false);
        mBinding.viewPager.setOffscreenPageLimit(1);

 SlideAdapter = new SlideAdapter(this, List, Fragment.this);
        mBinding.viewPager.setAdapter(SlideAdapter);

        mBinding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                super.onPageScrolled(position, positionOffset, positionOffsetPixels);
            }

            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
                Log.d(TAG, "onPageSelected:" + position);
                
            }

            @Override
            public void onPageScrollStateChanged(int state) {
                super.onPageScrollStateChanged(state);
            }
        });

任何幫助表示贊賞!

使用此行顯示項目水平

viewPager2.orientation = ViewPager2.ORIENTATION_HORIZONTAL

並且不要忘記注銷 OnPageChangeCallback

viewPager2.unregisterOnPageChangeCallback(viewPager2PageChangeCallback)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM