Actionbar图标覆盖

时间:2013-03-03 01:56:42

标签: android android-actionbar actionbarsherlock android-viewpager

以前有人见过这个问题吗?这只是使用姜饼设备的模拟器,但我的应用程序有一个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 个答案:

答案 0 :(得分:1)

请在ActionBarSherlock Github上查看此issue。这个问题是众所周知的,目前尚未解决。

相关问题