请教 ViewPager 与 BottomNavigationBar 动态的页面顺序的改变

mickyo 2020-06-16 05:18:17
在一个activity里面使用 ViewPager 与 BottomNavigationBar 做了个底部页面导航,我想实现通过手指拖拽图标,实现动态的页面顺序的改变,连同图标顺序也改变了,请教实现方法。以下是我的一些基本实现代码:

mainBinding.viewPager.addOnPageChangeListener(this);
mainBinding.boottomBar.setMode(BottomNavigationBar.MODE_SHIFTING);
mainBinding.boottomBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);
mainBinding.boottomBar.addItem(new BottomNavigationItem(R.mipmap.gift, title[0])) //设置第1个图标与文字
.addItem(new BottomNavigationItem(R.mipmap.ic_maiyou, title[1])) //设置第2个图标与文字
.addItem(new BottomNavigationItem(R.mipmap.shop, title[2])) //设置第3个图标与文字
.addItem(new BottomNavigationItem(R.mipmap.ic_home, title[3])) //设置第4个图标与文字
.initialise();
mainBinding.boottomBar.setTabSelectedListener(this);

//////////////////////////////////////

private List<Fragment> fragmentList = new ArrayList<>();

fragmentList.add(new xxFragment()); //创建第1个页面的fragment
fragmentList.add(new xxxFragment()); //创建第2个页面的fragment
fragmentList.add(new xxxxFragment()); //创建第3个页面的fragment
fragmentList.add(new xxxxxFragment()); //创建第4个页面的fragment
mainBinding.viewPager.setOffscreenPageLimit(5);
mainBinding.viewPager.setAdapter(new CommonFragmentAdapter(getSupportFragmentManager(), fragmentList, title));
...全文
120 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hacker_crazy 2020-06-29
  • 打赏
  • 举报
回复
据说这个是送分题。。。 简单说一下:你就用个自定义的list来装数据不就行了嘛?例如List<Pager> list = new ArrayList<>; Class Pager{ private id; private position; private src; private name; private Fragment fragmentName; ... } 或者用hashmap吧,查找起来方便很多。 改变之后对这个hashmap的数据顺序做更改,然后重新refresh一下数据就行了吧? 没试过,可能可以吧
mickyo 2020-06-16
  • 打赏
  • 举报
回复
其实 ViewPager 可以控制显示哪个页面,调整了逻辑顺序就行,关键是 BottomNavigationBar 里的图标如何动态更换? 不懂 BottomNavigationBar 的拖拽事件怎么弄的

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧