6

我在我的應用中使用ViewPager滑動效果。在視圖中查看查看器在上一個和下一個視圖之間的重疊

我有pager.setPageMargin()使下一個和前一個視圖可見性,不幸的是我的下一個視圖重疊與當前視圖。

下面是我的代碼

pager = (ViewPager) findViewById(R.id.myviewpager); 

    adapter = new MyPagerAdapter(this, this.getSupportFragmentManager()); 
    pager.setAdapter(adapter); 
    pager.setOnPageChangeListener(adapter); 



    // Set current item to the middle page so we can fling to both 
    // directions left and right 
    pager.setCurrentItem(FIRST_PAGE); 

    // Necessary or the pager will only have one extra page to show 
    // make this at least however many pages you can see 
    pager.setOffscreenPageLimit(10); 

    // Set margin for pages as a negative number, so a part of next and 
    // previous pages will be showed 

    // 
    pager.setPageMargin(-450); 

我使用的片段在尋呼機。 我得到的輸出來作爲帶這個線程,但需要與意見出來是正確進行過精研

enter image description here

部分標註上面的圖片應該去中心卡後面。

+0

[Android ViewPager - 顯示左側和右側頁面預覽]的可能重複(http://stackoverflow.com/questions/10098040/android-viewpager-show-preview-of-page-on-left-和 - 右) –

+0

@BillyRiantono它不重複,在附圖中,如果你看到我是displayi ng下一張卡,但下一張卡(標有橢圓形)覆蓋在當前卡(中心卡)上 – Suresh

+0

Hi @Suresh您是否有解決方案? – phongvan

回答

0

試試這個:

pager.setClipToPadding(false); 
    pager.setPadding(50, 0, 50, 0); 

代替:

pager.setPageMargin(-450); 
+0

@Mila Azhar它沒有工作 – Suresh

+0

我試着用bringToFront(),但它沒有工作 – Suresh

0

其實我帶來了所需的視圖到前面

view.bringToFront(); 

注:要確定正確的佈局是在查看器的當前顯示頁面的中心

+0

你能說請問你是如何確定視圖尋呼機中心的正確佈局? – Favolas

1
pager.setPadding(0, 0, 0, 0); 
pager.setPageMargin(0, 0, 0, 0); 

您只需使用match_parent查看紙張高度和寬度 tks。 希望對你有用

0

我找到了適用於後KitKat版本的解決方案。基本上我所做的是增加當前中心視圖的高程。 (我還在預棒棒糖溶液)

這裏是我的代碼,設置一個OnPageChangeListener您viewpager,在使用onPageSelected方法

 @Override public void onPageSelected(int position) { 

     //Counter for loop 
     int count = 0; 
     int PAGER_LOOP_THRESHOLD = 2; 
     if (position >= PAGER_LOOP_THRESHOLD) { 
     count = position - PAGER_LOOP_THRESHOLD; 
     } 
     do { 
     Fragment fragment = (Fragment) adapter.instantiateItem(pager, count); 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP 
      && fragment.getView() != null) { 

      //If it's current center position, increase view's elevation. Otherwise, we reduce elevation 
      if (count == position) { 
      fragment.getView().setElevation(8.0f); 
      } 
      else { 
      fragment.getView().setElevation(0.0f); 
      } 
     } 
     count++; 
     } while (count < position + PAGER_LOOP_THRESHOLD); 
    } 
0

因爲你設置pager.setPageMargin(-450);您還需要爲ViewPage的子片段和pager.setClipToPadding(false)提供240填充;爲流暢的動畫。

,如果有人還在尋找解決辦法,我已經定製的ViewPage去實現它,而無需使用負保證金,找到一個示例項目在這裏https://github.com/44kksharma/Android-ViewPager-Carousel-UI 應該在大多數情況下工作,但你仍然可以定義 mPager.setPageMargin(margin in pixel);

頁邊距