1

誰もこの問題を見たことがありますか? これは Gingerbread デバイスのエミュレーターを使用してのみ発生しますが、私のアプリにはViewPagerと があり、最初のビューから別のビューにスワイプして最初のビューに戻ると、別のアイコンのセットが最初のアイコンをオーバーレイしているように見えますActionbar(を使用ActionbarSherlock):

イニシャル:

ここに画像の説明を入力

スワイプ後 (通知アイコンが太くなっています):

ここに画像の説明を入力

これは、ICS+ デバイスでは発生しません。Gingerbread のみです。

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;
        }
   }  
}
4

1 に答える 1

1

ActionBarSherlock Githubでこの問題を確認してください。この問題は既知であり、現時点では修正されていません。

于 2013-03-03T04:28:04.113 に答える