添加标题到ViewPager

时间:2012-08-29 12:44:09

标签: android xml android-layout android-viewpager viewpagerindicator

this tutorial的帮助下,我为我的Android应用创建了一个PagerAdapter。

现在我想为每个页面添加一个标题(就像在Play商店中一样)。 我找到了这个图书馆:http://viewpagerindicator.com/ 但我无法找到如何在我的应用程序中实现它或如何使用它。

有人可以向我解释用法吗?

如果需要,这是我的PagerAdapter的代码:

public class MyPagerAdapter extends PagerAdapter {

    public int getCount() {
        return 5;
    }

    public Object instantiateItem(View collection, int position) {

        LayoutInflater inflater = (LayoutInflater) collection.getContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        int resId = 0;

        switch(position) {
            case 0:
                resId = R.layout.farleft;
                break;
            case 1:
                resId = R.layout.left;
                break;
            case 2:
                resId = R.layout.middle;
                break;
            case 3:
                resId = R.layout.right;
                break;
            case 4:
                resId = R.layout.farright;
                break;
        }

        View view = inflater.inflate(resId, null);

        ((ViewPager) collection).addView(view, 0);

        return view;
    }

    @Override
    public void destroyItem(View arg0, int arg1, Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == ((View) arg1);
    }

    @Override
    public Parcelable saveState() {
        return null;
    }
}

2 个答案:

答案 0 :(得分:8)

  

现在我想为每个页面添加一个标题(比如在Play商店中)

PagerTabStripPagerTitleStrip位于Android支持包中,您可以从中获取ViewPager。只需添加其中一个作为ViewPager的孩子,其中android:layout_gravity表示您是希望条带位于顶部还是底部。然后,正如Luksprog指出的那样,将getPageTitle()添加到您的PagerAdapter

Here is a sample project演示使用PagerTabStrip

  

但我无法找到如何在我的应用中实现它或如何使用它。

基本说明位于您链接的页面上。将一个ViewPagerIndicator小部件添加到您的布局中,放置在您想要的位置(例如,使用vertical LinearLayout将一个小部件堆叠在ViewPager之上。在setAdapter()上致电ViewPager后的某个时间,请在指标窗口小部件上调用setViewPager(),向其提供ViewPager。您需要再次在getPageTitle()上实施PagerAdapter

答案 1 :(得分:2)

今天,我发现图书馆PagerSlidingTabStrip是一个比android的默认选择更好的选择。

https://github.com/astuetz/PagerSlidingTabStrip

PS:很抱歉发帖作为答案,我没有足够的评论声誉。