Viewpager+Tablayout实现滑动布局并监听tablayout点击事件以及fragment刷新问题。
2018-12-19 16:40
826 查看
viewpager+tablayout都不陌生了。在很多地方都有用到过。这两天碰到个需求要求点击tablayout时出现下拉框选择分类然后动态刷新viewpager的当前界面。
首先对viewpager+tablayout做一个简单用法的总结。
1、在界面布局文件xml中添加
[code] <android.support.design.widget.TabLayout android:id="@+id/product_tabLayout" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="6" app:tabIndicatorColor="#D60000" app:tabIndicatorHeight="5dp" app:tabMode="scrollable" app:tabSelectedTextColor="#D60000" app:tabTextColor="#151414"> </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/product_viewpager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager>
2、在activity中
首先初始化标题和viewpager布局文件
[code] //页卡标题 private List<String> tabTitleList = new ArrayList<>(); //界面布局 private List<Fragment> mFragmentList = new ArrayList<>(); tabTitleList.add("新增产品"); tabTitleList.add("分类管理"); tabTitleList.add("产品分类"); mTabLayout = (TabLayout) findViewById(R.id.product_tabLayout); mViewPager = (ViewPager) findViewById(R.id.product_viewpager); mFragmentList.add(new FragmentXZCP()); mFragmentList.add(new FragmentFLGL()); mFragmentList.add(new FragmentCPFL());
[code] //设置viewpager最大显示页数 mViewPager.setOffscreenPageLimit(mFragmentList.size()); //添加tab选项 for (int i = 0; i < tabTitleList.size(); i++) { mTabLayout.addTab(mTabLayout.newTab().setText(tabTitleList.get(i))); } //给viewpager设置适配器 final FragmentPagerAdapter fragmentPagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } @Override public CharSequence getPageTitle(int position) { return tabTitleList.get(position); } }; //viewpager设置适配器 mViewPager.setAdapter(fragmentPagerAdapter); //绑定viewpager和tablayout mTabLayout.setupWithViewPager(mViewPager);
若要给tablayout设置点击事件。
[code] mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { //选择时触发 } @Override public void onTabUnselected(TabLayout.Tab tab) { //未选择是触发 } @Override public void onTabReselected(TabLayout.Tab tab) { //选中之后再次点击即复选时触发 if (tab.getText().equals("产品分类")) { mPopupWindow.showAsDropDown(mTabLayout); } fragmentPagerAdapter.notifyDataSetChanged(); } });
可以在这里面做各种操作。若是要类似在复选时出现弹框,根据选择类容来改变fragment界面只需要设置回调监听。然后吊用
fragmentPagerAdapter.notifyDataSetChanged();则就可以刷新界面。
相关文章推荐
- Tablayout+viewpager+fragment实现tab导航以及滑动切换
- TabLayout 和ViewPager和Fragment的多页面滑动(主要实现一个水平的布局用来展示Tabs加上ViewPager实现联动效果)
- Fragment嵌套Fragment, TabLayout + ViewPager实现页面切换滑动
- android app主题UI界面框架搭建 tablayout+Viewpager+fragment 导航栏滑动和点击切换界面
- Android进阶之利用Tablayout+ViewPager+Fragment实现神奇的滑动效果
- ViewPager 、TabLayout和Fragment实现标签滑动
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- 使用ViewPager和Fragment同时实现点击底部Tab切换和手势滑动切换Fragment
- ViewPager,TabLayout,Fragment实现tabs滑动
- TabLayout+View Pager+Fragment 实现页面左右滑动切换
- 当tabLayout+viewPager滑动时,滑动N次后viewPager中的fragment会变成空白页的问题
- 横向滑动菜单Tablayout,点击选项给下面的viewpager中的fragment传值
- Tablayout+Viewpager+Fragment实现滑动Tab及cannot convert from Fragment1 to Fragment之解决
- TabLayout和ViewPager以及Fragment实现超级简单导航栏
- Android开发ViewPager的预加载和Fragment的销毁问题,以及tabLayout+ViewPager的使用,tablayout平板适配问题解决
- ViewPager+Fragment支持导航滑动以及点击切换,触发替换某个tab对应的fragment
- TabLayout+ViewPager+Fragment实现顶部滑动效果
- Android 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- TabLayout+TabItem+ViewPager+Fragment实现早期微信屏幕滑动效果
- TabLayout、ViewPager、fragment实现可滑动的顶部菜单