首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现ViewPager PagerTitleStrip?

如何实现ViewPager PagerTitleStrip?
EN

Stack Overflow用户
提问于 2012-09-21 20:30:01
回答 1查看 1.6K关注 0票数 0

我是android的新手,我一直在使用教程来构建一个viewpager布局。但是,我还没有找到一个教程,它也说明了如何实现页面标题条。我已经能够收集零碎和条形显示,但我不知道如何使文本正确显示。目前,它会同时显示多个标题,并与页面失去同步。任何帮助都是非常感谢的。

代码语言:javascript
复制
public class MyPagerActivity extends Activity {

PagerTitleStrip mTitleStrip;
String myTitle;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mypagermain);

    MyPagerAdapter adapter = new MyPagerAdapter();
    ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);
    myPager.setAdapter(adapter);
    myPager.setCurrentItem(2);
    mTitleStrip = (PagerTitleStrip) findViewById(R.id.title_strip);


    //some code
}


private 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.news;              
            view = inflater.inflate(resId, null);
            LinearLayout layout0=(LinearLayout)view.findViewById(R.id.LLnews);
            WebView newsfeed = (WebView) view.findViewById(R.id.webViewnews);
            ((ViewPager) collection).addView(view, 0);
            return view;

        case 1:
            resId = R.layout.coinshows;
            view = inflater.inflate(resId, null);
            LinearLayout layout1=(LinearLayout)view.findViewById(R.id.LLcoinshows);
            WebView coinshows = (WebView) view.findViewById(R.id.webViewcoinshows);
            ((ViewPager) collection).addView(view, 0);
            return view;


        }
        return resId;
}

}

    @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() {
        // TODO Auto-generated method stub
        return null;
    }


    @Override
    public CharSequence getPageTitle(int position) {
        return myTitle;
    }

}
EN

回答 1

Stack Overflow用户

发布于 2013-08-08 14:18:29

我建议使用PagerSlidingTabStrip。它的使用非常简单,它模仿了Play Store的外观和感觉,非常好。

使用 1.有关此项目的工作实现,请参阅示例/文件夹。 在视图中包含PagerSlidingTabStrip小部件。这通常应该放置在它所代表的ViewPager附近。

代码语言:javascript
复制
  <com.astuetz.viewpager.extensions.PagerSlidingTabStrip
     android:id="@+id/tabs"
     android:layout_width="match_parent"
     android:layout_height="48dip" /> 

2.在onCreate方法(或片段的onCreateView )中,将小部件绑定到ViewPager。

代码语言:javascript
复制
  // Set the pager with an adapter  
  ViewPager pager = (ViewPager) findViewById(R.id.pager);  
  pager.setAdapter(new TestAdapter(getSupportFragmentManager()));

  // Bind the widget to the adapter  
  PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
  tabs.setViewPager(pager);

3.(可选)如果在视图寻呼机中使用OnPageChangeListener,则应该在小部件中设置它,而不是直接在寻呼机上设置它。

代码语言:javascript
复制
  // continued from above 
  tabs.setOnPageChangeListener(mPageChangeListener);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12537758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档