BottomNavigationBar+viewpage+fragment 底部导航

2024-02-10 12:48

本文主要是介绍BottomNavigationBar+viewpage+fragment 底部导航,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mainactivity的布局文件

<android.support.v4.view.ViewPagerandroid:id="@+id/viewPager"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /><com.ashokvarma.bottomnavigation.BottomNavigationBar
        android:id="@+id/bottom_navigation_bar"android:layout_width="match_parent"android:layout_height="49dp" />
enter code here

MainActivity引入Viewpager

viewPager = (ViewPager) findViewById(R.id.viewPager);if (fragments == null) {fragments = new ArrayList<Fragment>();fragments.add(new HomeFragment());fragments.add(new HomeFragment());fragments.add(new HomeFragment());}mainAdapter = new MainAdapter(getSupportFragmentManager(), fragments);viewPager.setAdapter(mainAdapter);viewPager.addOnPageChangeListener(this);viewPager.setCurrentItem(0);
enter code here

ViewPager的适配器

public class MainAdapter extends FragmentPagerAdapter {private List<Fragment> mFragmentList;public MainAdapter(FragmentManager fm, List<Fragment> mFragmentList) {super(fm);this.mFragmentList = mFragmentList;}@Overridepublic Fragment getItem(int position) {return mFragmentList.get(position);}@Overridepublic int getCount() {return mFragmentList.size();}@Overridepublic int getItemPosition(Object object) {return POSITION_NONE;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {
//        container.removeView((View) object);super.destroyItem(container, position, object);}}enter code here

底部导航条BottomNavigationBar

 private void initBottomNavigationBar() {bottomNavigationBar = (BottomNavigationBar) findViewById(R.id.bottom_navigation_bar);bottomNavigationBar.setTabSelectedListener(this);bottomNavigationBar.clearAll();bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);bottomNavigationBar.addItem(new BottomNavigationItem(R.mipmap.app_home_two, "首页").setInactiveIconResource(R.mipmap.app_home_one).setActiveColorResource(R.color.common_color_text_blue)).addItem(new BottomNavigationItem(R.mipmap.app_shopping_two, "购物车").setInactiveIconResource(R.mipmap.app_shopping_one).setActiveColorResource(R.color.common_color_text_blue)).addItem(new BottomNavigationItem(R.mipmap.app_mine_two, "我的").setInactiveIconResource(R.mipmap.app_mine_one).setActiveColorResource(R.color.common_color_text_blue)).initialise();}
enter code here

Viewpager关联BottomNavigationBar

 @Overridepublic void onPageSelected(int position) {System.out.println("MainActivity" + "onPageSelected" + position);//ViewPager滑动bottomNavigationBar.selectTab(position);}
enter code here

BottomNavigationBar关联Viewpager

 @Overridepublic void onTabSelected(int position) {System.out.println("MainActivity" + "onTabSelected" + position);//tab被选中viewPager.setCurrentItem(position);}
enter code here

Fragment

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment_first,container,false);
enter code here

这篇关于BottomNavigationBar+viewpage+fragment 底部导航的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697138

相关文章

ViewPager+fragment实现切换页面(一)

如今的很多应用中都是下面有一排按钮,点击可以切换页面,滑动也可以切换页面。下面就来简单的实现这个功能。 思路 首先肯定是会用到viewpager这个控件,为了能够向下兼容,最好用v4包下的viewpager,Activity要继承FragmentActivity 其次用一个集合来存储所有的fragment页面在设置viewpager的适配器时,把存储fragment页面的list集合传入ada

安卓中的fragment与viewPager的使用问题的解决

最近使用viewPager,结合fragment使用,发现fragment的周期将不符合他的原有的周期流程,多个fragment将会产生错位问题。       通过研究相关代码,发现fragment的切换实际调用的函数为setUserVisibleHint,通过在其中重写方法,将会达到fragment正确切换的效果。       public void setUserVisible

ViewPageIndctor,viewPage指示器效果

开发中我们很多时候遇到类似这种的效果 或者是这种三角形的该如何实现呢, 本篇介绍来源于慕课网的张鸿洋的自定义ViewPageIndctor,(视频中讲解的是三角形的那种) 我们看下项目的结构 主要的程序都已经封装在ViewPageIndctor中,我们来看下MainActivity中的调用就知道 public class MainActivity extends Fragment

CSS学习6--背景图片、颜色、位置、附着、简写、透明、缩放、多背景、凹凸文字、导航栏例子

CSS背景 一、背景颜色和图片二、背景位置三、背景附着四、背景简写五、背景透明六、背景缩放七、多背景八、凹凸文字九、导航栏例子 一、背景颜色和图片 background-color: pink; 背景颜色backgroundoimage: url(##.jpg); 背景图片background-repeat: 平铺 repeat-x横向平铺,repeat-y纵向平铺; 平铺不到

Activity被回收导致其内部的Fragment

方式一:   MainActivity重写onSaveInstanceState方法,将super.onSaveInstanceState(outState);注释掉,让其不再保存Fragment的状态,达到其随着MainActivity一起被回收的效果! 方式二: @Overrideprotected void onSaveInstanceState(Bundle outSta

Win10 - 删除快速访问导航栏

1、按下 Win + R 键,在运行中输入 regedit 回车,打开注册表 2、然后定位到 HKEY_CLASSES_ROOT\CLSID\{679f85cb-0220-4080-b29b-5540cc05aab6}\ShellFolder 中 3、这时需要对 ShellFolder 进行权限修改,不然是没法修改该项下的数据。参考 Win10注册表获取权限的方法 4、得到权限后,再把把右

ScrollView嵌套listview滑动位置底部bug

三种方案,个人推荐第三种: 1 sv.fullScroll(ScrollView.FOCUS_UP); 2 sv.setScrollY(0); 3 sv.smoothScrollTo(0,20); 滑动冲突解决listView: public class ListViewForScrollView extends ListView {public ListVie

Android - 总结Activity与Fragment打开的时候获取组件的大小

Activity中获取 组件大小        代码: @Overridepublic void onWindowFocusChanged(boolean hasFocus) {// TODO Auto-generated method stubsuper.onWindowFocusChanged(hasFocus);Log.d("TAG", "A-button1-->"+button1);L

uniapp底部安全距离(safeAreaInsets)的实际应用

实际遇到的问题:页面底部的元素与 IOS 自带的导航条重叠了(图 1),调整后(图 2) 解决办法:safeAreaInsets获取屏幕边界到安全区域距离 // 获取屏幕边界到安全区域距离     const { safeAreaInsets } = uni.getSystemInfoSync() 页面中增加一个 DOM 撑开  <view :style="{ height:

三处设置实现一个状态栏沉浸底部虚拟键不沉浸的底部弹出的全屏Dialog

先看下面的效果图,这个页面并不是一个Activity 而是一个Dialog,这个Dialog是全屏、顶部状态栏沉浸、底部虚拟器露出且支持从底部弹出的对话框,下面让我们通过三处设置来实现这个效果。 一、给Dialog添加Style public BaseDialog(@NonNull Context context) {super(context, R.style.ActionSheetDi