我有一个场景,我需要在运行时添加新选项卡,比如刷卡刷新我需要在左端添加新选项卡.
下面是我添加新标签的代码:
pagerAdapter.TABS_COUNT = 4; //global value to change the tabs countpagerAdapter.notifyDataSetChanged();pagerSlIDingTabStrip.setVIEwPager(mPager);
但有时候其中一个标签内容变为空列表视图不可滚动.
我能做到这一点的最佳方式是什么?
解决方法 这是一个如何做到的例子,不要说这是最好的方式,但我赶紧写了 https://github.com/jacktech24/pager-sliding-strip-example首先,你需要一个自定义适配器,这里我使用了一个简单的适配器,它只在每个片段上显示文本,但很容易修改它以支持正常的片段等.示例中的mTabs是:
mTabs = (PagerSlIDingTabStrip) findVIEwByID(R.ID.tabs);
那么这个例子
private class TestAdapter extends FragmentPagerAdapter { private ArrayList<String> tabs = new ArrayList<>(); public TestAdapter(FragmentManager supportFragmentManager) { super(supportFragmentManager); } @OverrIDe public Fragment getItem(int position) { Fragment frag = new ExampleFragment(); Bundle bundle = new Bundle(); bundle.putString("Title",(String) getPageTitle(position)); frag.setArguments(bundle); return frag; } @OverrIDe public CharSequence getPageTitle(int position) { return tabs.get(position); } @OverrIDe public int getCount() { return tabs.size(); } public voID addTab(String tab) { tabs.add(tab); notifyDataSetChanged(); mTabs.notifyDataSetChanged(); } public voID removeTab(int position) { tabs.remove(position); notifyDataSetChanged(); mTabs.notifyDataSetChanged(); } }
然后,它就像这样简单:
//mAdapter is instance of your adapter mAdapter.addTab("test 1"); mAdapter.addTab("test 2"); mAdapter.addTab("test 3"); floatingActionbutton fab = (floatingActionbutton) findVIEwByID(R.ID.fab); fab.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { mAdapter.addTab("test "+(mAdapter.getCount()+1)); } });总结
以上是内存溢出为你收集整理的android – PagerSlidingTabStrip – 在运行时添加新选项卡全部内容,希望文章能够帮你解决android – PagerSlidingTabStrip – 在运行时添加新选项卡所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)