0

我目前在我的pagerslidingtabs上遇到了一些奇怪的事情,其中​​我的recyclerview中的列表覆蓋了相同的視圖,除了頂部視圖不可滾動並且背景中的列表可滾動但覆蓋。這隻會隨機發生,不能輕易複製。這隻會發生,如果我更改/快速刷新從一個頁面到另一個,但提到它很難複製相同的問題。這裏是什麼樣子:PagerSlidingTabs中的Android RecyclerView List重疊

enter image description here

現在我已經是一個PagerSlidingTabStrip以及它包含片段與recyclerviews的列表FragmentPagerAdapter。我敢肯定,問題不在於recyclerview列表,而是使用尋呼機本身,因爲我猜想它創建了片段視圖,而前面的視圖尚未刪除,從而觸發了這種效果。我確保爲我的物品創建我的片段的新實例。這裏是到目前爲止的代碼:

public class ResultPagerAdapter extends FragmentPagerAdapter { 

    private final String[] TITLES = { "TAB", "TAB2" }; 

    public ResultPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return TITLES[position]; 
    } 

    @Override 
    public int getCount() { 
     return TITLES.length; 
    } 

    @Override 
    public Fragment getItem(int position) { 
     switch (position) { 
      case 0: 
       return Page1.newInstance(position); 
      case 1: 
       return Page2.newInstance(position); 
     } 
    } 

} 

和初始化PagerSlidingTabStrip:

private void initializeTabs() { 
     //initialize pager 
     adapter = new ResultPagerAdapter(getSupportFragmentManager()); 
     pager.setAdapter(adapter); 

     tabs.setDividerColor(getResources().getColor(android.R.color.transparent)); 
     tabs.setUnderlineColor(getResources().getColor(R.color.red)); 
     tabs.setIndicatorColor(getResources().getColor(R.color.blue)); 
     tabs.setIndicatorHeight(new Utils().dpToPx(48)); 
     tabs.setUnderlineHeight(new Utils().dpToPx(4)); 
     tabs.setTextColor(getResources().getColor(R.color.white)); 
     tabs.setViewPager(pager); 
    } 

和尋呼機代碼:

public class CustomViewPager extends ViewPager { 

    private boolean enabled; 

    public CustomViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     this.enabled = true; 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     if (this.enabled) { 
      return super.onTouchEvent(event); 
     } 

     return false; 
    } 

    @Override 
    public boolean onInterceptTouchEvent(MotionEvent event) { 
     if (this.enabled) { 
      return super.onInterceptTouchEvent(event); 
     } 

     return false; 
    } 

    public void setPagingEnabled(boolean enabled) { 
     this.enabled = enabled; 
    } 
} 

,並在我的碎片作的newInstance代碼調用web服務數據:

public static SenatorsResult newInstance(int position) { 
     SenatorsResult f = new SenatorsResult(); 
     Bundle b = new Bundle(); 
     b.putInt(ARG_POSITION, position); 
     f.setArguments(b); 
     return f; 
    } 

之前有人遇到過這個問題嗎?希望有人能幫助我。

+0

如果您正在使用工具欄倒塌的問題是身高。發佈你的xml代碼。 –

+0

不,我不使用摺疊的工具欄,即使我使用它,高度實際上也不會是問題。下面的答案以某種方式解釋了這個問題。該片段即使在android中默認行爲的pager上不可見,也不會被銷燬。由於它沒有被破壞,所以佈局仍然可見,當我改變頁面時,它將調用片段的新實例,而保存的視圖不會失效導致問題。我很確定它是在尋呼機上,但不知道如何解決它。 – KaHeL

回答