1

有沒有人看過這個問題?這只是使用薑餅設備的模擬器,但我的應用程序有ViewPager,當我從初始視圖滑動到另一個視圖並回到初始視圖時,它看起來像另一組圖標疊加在初始圖標Actionbar(使用ActionbarSherlock):疊加的動作條圖標

初始:

enter image description here

滑動後(通知圖標是更厚):

enter image description here

這不會發生在僅ICS +設備薑餅。

ViewPager:

public class Main extends SherlockFragmentActivity 
{ 
    private static List<Integer> mIds; 
    private static SparseArray<Fragment> mPageReferenceMap = new SparseArray<Fragment>(); 

    @Override 
    public void onCreate(final Bundle icicle) 
    {  
     super.onCreate(icicle); 

     setContentView(R.layout.main); 

     mViewPager = (ViewPager)findViewById(R.id.viewpager); 
     mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager()); 
     mViewPager.setAdapter(mMyFragmentPagerAdapter); 

     mViewPager.setOnPageChangeListener(new OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int position) { 
       GetListingFragment().StopAnimation(); //needed to add this because the ActionView was showing on the other views when swiping 
      } 

      @Override 
      public void onPageScrolled(int position, float offset, int offsetPixel) { 
      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 

     mIds = new ArrayList<Integer>(); 

     mIds.add(0); 
     mIds.add(1); 
     mIds.add(2); 
    } 

    @Override 
    public void onResume() 
    { 
     super.onResume(); 
     ActivityCompat.invalidateOptionsMenu(this); 
    } 

    private ListingFragment GetKeywordsFragment() 
    {  
     ListingFragment lf = (ListingFragment)getSupportFragmentManager().findFragmentById(R.id.fragmentListing); 

     if (lf == null) 
     { 
      final MyFragmentPagerAdapter fpa = (MyFragmentPagerAdapter)mViewPager.getAdapter(); 
      lf = (ListingFragment)fpa.getFragment(0); 
     } 

     return lf; 
    } 

    private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter { 

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

     @Override 
     public Fragment getItem(int index) { 
      if (index == 0) 
      { 
       final ListingFragment lf = ListingFragment.newInstance(); 
       mPageReferenceMap.put(index, lf); 
       return lf; 
      } 
      else 
      { 
       final DetailFragment df = DetailFragment.newInstance(mIds.get(index)); 
       mPageReferenceMap.put(index, df); 
       return df; 
      } 
     } 

     public Fragment getFragment(int key) { 
      return mPageReferenceMap.get(key); 
     } 

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

回答

1

請看看這個issue在ActionBarSherlock Github上。這個問題是已知的,目前尚未修復。

+0

啊,謝謝你的支持。這讓我瘋狂。希望它能很快得到解決。我可能會編寫一些邏輯來檢查SDK版本,而不是爲ICS之前的設備設置菜單動畫。 – 2013-03-03 04:39:04

+1

是的,這可能是目前最好的解決方法。目前似乎沒有任何關於此問題的工作,但希望很快能夠解決。 – 2013-03-03 04:48:03