Android市场标签效果没有片段

时间:2011-12-20 15:45:41

标签: android

我想创建一个像Android市场一样的标签Activity。

我在这里找到了一个教程:https://github.com/JakeWharton/Android-ViewPagerIndicator

我的问题是我不想使用片段(因为它们不受2.3较早版本的android支持)但是活动。那可能吗?

这是我的代码:

public class Activity extends FragmentActivity {
    private PagerAdapter mPagerAdapter;
    static final String[] CONTENT = new String[] { "categories", "Featured",
            "Top Paid", "Top Free", "Top Grossing", "Top New Paid",
            "Top New Free", "Trending", "Staff choices", "Editor's Choices" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        super.setContentView(R.layout.simple_tabs);

        // initialize the pagerz
        this.initialisePaging();
    }

    /**
     * Initialize the fragments to be paged
     */
    private void initialisePaging() {

        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, frag3.class.getName()));
        fragments.add(Fragment.instantiate(this, frag4.class.getName()));

        fragments.add(Fragment.instantiate(this, frag0.class.getName()));
        fragments.add(Fragment.instantiate(this, frag0.class.getName()));
        fragments.add(Fragment.instantiate(this, frag0.class.getName()));
        fragments.add(Fragment.instantiate(this, frag0.class.getName()));
        fragments.add(Fragment.instantiate(this, frag0.class.getName()));
        fragments.add(Fragment.instantiate(this, frag0.class.getName()));
        fragments.add(Fragment.instantiate(this, frag0.class.getName()));
        fragments.add(Fragment.instantiate(this, frag0.class.getName()));
        fragments.add(Fragment.instantiate(this, frag0.class.getName()));

        this.mPagerAdapter = new FragmentPagerAdapter2(super
                .getSupportFragmentManager(), fragments);

        ViewPager pager = (ViewPager) super.findViewById(R.id.pager);
        pager.setAdapter(this.mPagerAdapter);
        pager.setCurrentItem(1);
        TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);
        indicator.setViewPager(pager);
        indicator.setCurrentItem(1);

    }

}

1 个答案:

答案 0 :(得分:2)

为什么不使用ActionBarSherlock库?

http://actionbarsherlock.com/

使用此库,您可以使用片段并始终兼容API级别4(目标1.6)。当然,片段行为仅在3.0版之前的版本上运行时进行模拟,但API始终相同,并且一旦在3.0和最新版本上运行,它就会使用本机片段来模拟它们。

片段非常方便,使您的活动更具可重用性,因为它们是整个应用程序“拼图”的独立部分。