android fragment 底部菜单栏,安卓开发-底部导航栏切换Fragment进行显示
内容纲要
底部导航栏切换Fragment进行显示
创建Fragment对象
通常会有多个Fragment用于切换
用Fragment[] fragments保存为集合
private FrameLayout frame_home;
private Fragment[] fragments;
private HomeFragment homeFragment;
private int lastfragment = 0;
显示Fragment对象
加载Fragment视图
private void initView() {
//加载Fragment
homeFragment = new HomeFragment();
//Fragments集合
fragments = new Fragment[]{homeFragment};
//加载FrameLayout布局
frame_home = (FrameLayout) findViewById(R.id.frame_home);
//设置fragment到布局
getSupportFragmentManager().beginTransaction().replace(R.id.frame_home,homeFragment).show(homeFragment).commit();
}
切换Fragment
管理多个Fragment并切换
切换到指定Fragment
//切换fragment
private void switchFragment(int lastfragment, int index) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
//隐藏上个Fragment
transaction.hide(fragments[lastfragment]);
if (!fragments[index].isAdded()) {
transaction.add(R.id.frame_home, fragments[index]);
}
transaction.show(fragments[index]).commitAllowingStateLoss();
}
底部导航栏点击事件监听器
//底部导航栏点击响应事件
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_home:
if (lastfragment != 0) {
switchFragment(lastfragment, 0);
lastfragment = 0;
}
ToastUtil.showToast(getApplicationContext(), "点击了nav_home");
return true;
case R.id.nav_zoom:
// if (lastfragment != 1) {
// switchFragment(lastfragment, 1);
// lastfragment = 1;
// }
ToastUtil.showToast(getApplicationContext(), "点击了nav_zoom");
return true;
case R.id.nav_user:
ToastUtil.showToast(getApplicationContext(), "点击了nav_user");
return true;
default:
break;
}
return false;
}
};
android fragment 底部菜单栏,安卓开发-底部导航栏切换Fragment进行显示相关推荐
- Android仿微信底部菜单栏+今日头条顶部导航栏
背景 Android应用几乎都会用到底部菜单栏,在Material Design还没有出来之前,TabHost等技术一直占主流,现在Google新sdk中提供了TabLayout类可以便捷的做出底部菜 ...
- Android底部导航栏切换页面填坑
** Android底部导航栏切换页面填坑 ** 这个效果的实现关键点就是给选项赋予两种状态,focused和normal,在主程序中用监听判断是否被选中,就给被选中的选项设focused为true, ...
- Android中的底部导航栏切换TabContainerView
前言:在GitHub上看到一个框架,实现底部导航栏切换,感觉不错,就在这里总结一下. 参考:https://www.jianshu.com/p/9aaff43bbf9f https://github. ...
- Android 7.0 SystemUI 状态/导航栏的隐藏与显示
平台 Android 7.1 + RK3288 概述 从Android 4.4开始支持沉浸式全屏体验,在沉浸式全屏模式下,状态栏. 虚拟按键动态隐藏,应用可以使用完整的屏幕空间,按照 Google 的 ...
- 钉钉导航栏分享按钮的显示/隐藏
钉钉导航栏分享按钮的显示/隐藏 隐藏 进行钉钉开发后,打开应用时右上角会有三个小点点"-",打开之后会显示一些分享功能或者查看链接的功能,这样对于应用的安全是存在隐患的,那么如何来 ...
- 仿抖音短视频APP源码,顶部导航栏切换详解
仿抖音短视频APP源码,顶部导航栏切换详解的相关代码 class DaoHangNan extends StatefulWidget //继承StatefulWidget{TabController ...
- 点击左侧导航栏切换右侧商品(左右联动)
点击左侧导航栏切换右侧商品(左右联动) 菜单栏主要以 A,B,C,D等字母为主,即A,B,C,D等字母为对应该项携带的 id(id不能为汉字或纯数字). 实现该功能的思路:通过点击左侧滑栏的某一项,获 ...
- Tab导航栏切换的实现
文章目录 前言 一.自定义属性 1.自定义属性的目的 2.自定义属性的操作 3.规范 二.导航栏的实现 1.静态样式 2.JS实现交互 总结 前言 Tab导航栏切换在网页场景中十分常见,本文将介绍如何 ...
- Axure RP 如何实现导航栏切换页面——母版
网站的导航功能是一个网站的最基本也是最为重要的功能之一,当我们在做项目时,点击导航按钮实现跳转页面,并且每次点击跳转都会有交互,运用母版,可大量减少设计时间,实现跳转页面. 以知乎网站为例: 总结为两 ...
- 导航栏切换—云南旅游相册
通过使用jQuery库来实现导航栏切换:分析如下: 1.首先建立一个就绪函数ready函数,把所有的jQuery内容都写到这个函数中. 2.选中按钮元素并绑定单击事件 3.选中img图片,通过eq() ...
最新文章
- scopt解析参数实例
- 今年尾牙我们部门拍的搞笑短片,讲述项目开发的事~
- 开课吧 dubbo+zookeeper
- java海贼王秘宝传说下载_我的世界1.7.10海贼王整合包
- vue源码解析:vue生命周期方法$mount方法的实现原理
- 数学建模最新教育数据分享及数据查询方法(数据来源:世界银行、世界数据图册、联合国教科文组织、国家统计局)
- 我的世界服务器登录显示motd,[信息]ColorMOTD —— 究极Motd插件,外带反压测[1.7-1.8]...
- 腾讯辟谣心悦3玩家“特权”;共享充电宝陷入生死危机
- 一步教会你如何上传资源到云服务器
- iOS Swift 将公历日期转换为中国农历
- Android Google Services Framework Google Play
- 让CEF支持HEVC(H.265)视频播放
- 软件测试项目管理系统系统描述
- LaTeX 写作: 算法代码排版 --latex2e范例总结
- 线性代数:线性方程求解、矩阵的逆、线性组合、线性独立
- 《面朝大海,春暖花开》(海子)
- 【Easyexcel】根据模板导出excel
- thinkphp5 ajax分页
- 这个时代的三个大坑,你踩过哪一个?
- 四种方式实现数据共享