如何在android中使用ViewPager创建网格样式图标?

时间:2012-02-18 03:28:48

标签: android gridview icons android-fragments android-viewpager

我有一个ViewPagerLibrary,用于我的主视图。主视图有2页(水平向右和向左滚动)。我想做的是为每个页面添加一个网格样式图标,就像Android主屏幕或Ice Cream Sandwich中的新应用程序屏幕一样。我正确地实现了ViewPager,我可以在左右之间滑动,但我对如何为每个页面添加网格和图标感到困惑。当然,每个页面都会有一组不同的图标。我不知道从哪里开始,有人能指出我正确的方向吗?

这是我的主要xml:          

    <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@drawable/background_main"
            />
    <com.viewpagerindicator.CirclePageIndicator
            android:id="@+id/indicator"
            android:padding="10dip"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            />
</LinearLayout>

这是我的主要活动:

public class Main extends FragmentActivity
{

    PagerAdapter mAdapter;
    ViewPager mPager;
    PageIndicator mIndicator;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)

    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        initialisePaging();

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);

        CirclePageIndicator indicator = (CirclePageIndicator)findViewById(R.id.indicator);
        mIndicator = indicator;
        indicator.setViewPager(mPager);
        indicator.setSnap(true);
    }

    private void initialisePaging() {

        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, MainScreenFragmentOne.class.getName()));
        fragments.add(Fragment.instantiate(this, MainScreenFragmentTwo.class.getName()));
        mAdapter  = new PagerAdapter(super.getSupportFragmentManager(), fragments);
    }


    public class PagerAdapter extends FragmentPagerAdapter {

        private List<Fragment> fragments;

        public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
            super(fm);
            this.fragments = fragments;
        }

        @Override
        public Fragment getItem(int position) {
            return this.fragments.get(position);
        }

        @Override
        public int getCount() {
            return this.fragments.size();
        }
    }
}

如您所见,我正在添加两个页面(片段)。我真的不希望每个片段都有一个类,而是我希望有一个类可以为两个页面创建图标。

有人可以帮忙吗?

谢谢你们!

0 个答案:

没有答案