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

相关文章

js+css二级导航

效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Con

【Unity Shader】片段着色器(Fragment Shader)的概念及其使用方法

在Unity和图形编程中,片段着色器(Fragment Shader)是渲染管线中的一个阶段,负责计算屏幕上每个像素(片段)的颜色和特性。片段着色器通常在顶点着色器和任何几何处理之后运行,是决定最终像素颜色的关键步骤。 Fragment Shader的概念: 像素处理:片段着色器处理经过顶点着色器和几何着色器处理后,映射到屏幕空间的像素。颜色计算:它计算每个像素的颜色值,这可能包括纹理采样、光

ArkTS开发系列之导航 (2.7动画)

上篇回顾: ArkTS开发系列之导航 (2.6 图形) 本篇内容:动画的学习使用 一、 知识储备 1. 布局更新动画 包含显式动画(animateTo)和属性动画(animation) 动画类型名称特点显式动画闭包内的变化都会触发动画执行, 可以做较复杂的动画属性动画属性变化时触发动画执行, 设置简单 说白了,显示动画就是靠闭包事件触发,属性动画是挂在组件身上的属性变化触发 显式动画

react实现导航守卫

React本身并没有像Vue那样的直接名为“导航守卫”的概念,但在React Router中,我们可以通过特定的方法和技术来模拟和实现类似的功能。以下是对React Router中模拟导航守卫的详解: 1. 导航守卫的概念 导航守卫:在路由切换之前执行的钩子函数,用于控制路由的跳转。在Vue Router中,这通常用于路由鉴权,即在路由跳转之前判断用户是否有权访问目标页面。React中的模拟:

为导航栏的li加上.selected样式

为导航栏的li加上.selected样式 HTML <!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>myNav</title><link rel="stylesheet" type="text/css" href="main.css"></head><body><div class="nav-wr

使用ViewPager+Fragment出现indexoutofboundexception

今天在使用ViewPager与Fragment的时候,出现了indexoutofboundexception  后来才知道ViewPager会自动缓存1页内的数据,如果你滑动过快,有时候快速的切换自动清除所有的Fragment,使你装载Fragment的ArrayList为空,所以出现了indexoutofboundexception  //这是我装载Fragment的ArrayList

Viewpager+Fragment滑动更改ListView数据和设置title文字的变化

设置ListView的数据更改只有几行代码,不用说了; 设置title的文字的变化:给ViewPager设置监听器,Viewpager变化的时候,给文字添加渐变,滑动完成后设置文字最终的大小 主要代码如下: /** * ViewPager切换监听方法 */public ViewPager.OnPageChangeListener pageListener = new ViewP

ios设置导航栏背景图片、返回按钮背景、标题颜色等等

在ios程序的编写过程中,很多时候我们都要自定义自己的UI,而不是使用cocoatouch中原有的。说起对UI的更改,很多时候我们只是修改一下原有UI的背景啊,颜色之类的,以达到新的要求。     在此之前呢,设置UINavigationController的背景颜色,我会使用如下的代码: 首先看.h文件 #import <UIKit/UIKit.h>@interface UI

uniapp 底部菜单栏书写

{"pages": [{"path": "pages/index/index","style": {"navigationBarTitleText": "首页"}},{"path": "pages/my/my","style": {"navigationBarTitleText": "我的"}},{"path": "pages/categorize/categorize","style": {"n

多个viewpager导致Fragment不显示的问题

转自:http://www.trinea.cn/android/android-source-code-analysis/multi-viewpager-to-fragment-not-init/ 场景:封装后自定义的viewpager,在同一个Activity页面添加多个时,由于id相同,会导致viewpager不显示 原因: 多个ViewPager引发的Fragment未初始化 本文主