FragmentTabHost+FrameLayout实现底部菜单栏
现在一般的app都使用底部菜单栏,那具体怎么实现的呢!我们就来看看
首先给大家展示一下布局文件
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:orientation="vertical" android:layout_width="match_parent" 3 android:layout_height="match_parent"> 4 <FrameLayout 5 android:id="@+id/realtabcontent" 6 android:layout_width="fill_parent" 7 android:layout_height="0dip" 8 android:layout_weight="1" 9 android:background="@color/white" /> 10 11 12 <LinearLayout 13 android:layout_width="match_parent" 14 android:layout_height="wrap_content" 15 android:layout_gravity="bottom" 16 android:orientation="vertical"> 17 18 <View 19 android:layout_width="match_parent" 20 android:layout_height="1px" 21 android:background="@color/color_home_tab_line" /> 22 23 <android.support.v4.app.FragmentTabHost 24 android:id="@android:id/tabhost" 25 android:layout_width="fill_parent" 26 android:layout_height="wrap_content" 27 android:background="@color/et_divider_disable"> 28 29 <FrameLayout 30 android:id="@android:id/tabcontent" 31 android:layout_width="0dp" 32 android:layout_height="0dp" 33 android:layout_weight="0" /> 34 </android.support.v4.app.FragmentTabHost> 35 36 </LinearLayout> 37 </LinearLayout>
接下来就是怎么使用了,其实比较简单,我们就看代码吧!
1 //数据 2 private int mImageViewArray[] = {R.drawable.home_tab1, R.drawable.home_tab2, R.drawable.home_tab3}; 3 private String mTextviewArray[] = {"首页", "设置","我的"}; 4 private Class fragmentArray[] = {Fragment1.class, Fragment2.class, Fragment3.class}; 5 6 //初始化以及设置数据 7 mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); 8 mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 9 int count = fragmentArray.length; 10 for (int i = 0; i < count; i++) { 11 TabHost.TabSpec tabSpec = mTabHost.newTabSpec(mTextviewArray[i]) 12 .setIndicator(getTabItemView(i)); 13 mTabHost.addTab(tabSpec, fragmentArray[i], null); 14 mTabHost.getTabWidget().getChildAt(i) 15 .setBackgroundResource(R.drawable.bg_tbitem); 16 } 17 mTabHost.setCurrentTabByTag(mTextviewArray[0]); 18 mTabHost.getTabWidget().setDividerDrawable(null); 19 20 mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() { 21 @Override 22 public void onTabChanged(String s) { 23 24 25 } 26 }); 27 28 29 /** 30 * 项的样式 31 * 32 * @param index 第几个 33 * @return 每一个Tab样式 34 */ 35 private View getTabItemView(int index) { 36 View view = layoutInflater.inflate(R.layout.tab_home_item, null); 37 ImageView imageView = (ImageView) view.findViewById(R.id.icon); 38 imageView.setImageResource(mImageViewArray[index]); 39 TextView textView = (TextView) view.findViewById(R.id.name); 40 textView.setText(mTextviewArray[index]); 41 return view; 42 }
对了,其中图片我们都设置成了selector,才有点击变色的效果
1 <selector xmlns:android="http://schemas.android.com/apk/res/android"> 2 <item android:drawable="@drawable/btn_jiance_pre" android:state_pressed="false" android:state_selected="true" /> 3 <item android:drawable="@drawable/btn_jiance_nor" android:state_focused="false" android:state_pressed="false" android:state_selected="false" /> 4 <item android:drawable="@drawable/btn_jiance_pre" android:state_focused="true" android:state_pressed="true" /> 5 </selector>
转载于:https://www.cnblogs.com/wangying222/p/6289858.html
FragmentTabHost+FrameLayout实现底部菜单栏相关推荐
- 【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏
既然 Fragment 取代了TabActivity,当然 TabActivity 的能实现的菜单栏,Fragment 当然也能实现.主要其实就是通过菜单栏的点击事件切换 Fragment 的显示和隐 ...
- Android底部菜单栏 仿微博效果
实现方式一:通过TabWidget实现 这种方式主要是在布局中将TabWidget标签嵌套在RelativeLayout中,并且在TabWidget标签中中设置 android:layout_alig ...
- 【Android UI设计与开发】第09期:底部菜单栏(四)Fragment+PopupWindow仿QQ空间最新版底部菜单栏
转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9023451 在今天的这篇文章当中,我依然会以实战加理论结合 ...
- 【Android UI设计与开发】第06期:底部菜单栏(一)使用TabActivity实现底部菜单栏
转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8989063 从这一篇文章开始,我们将进入到一个应用程序主界面UI ...
- android viewpager 底部tabhost,FragmentTabHost+ViewPager实现底部导航栏
首先使用FragmentTabHost实现底部菜单栏. content_act_main.xml xmlns:app="http://schemas.android.com/apk/res- ...
- android radiogroup 底部菜单,Android底部菜单栏(RadioGroup+Fragment)美化
众所周知,android的底部菜单栏太重要,平时项目一般都是需要用到的,但是网上关于这方面的demo做得太丑了,实在惨不忍睹,所以这里便用RadioGroup+Fragment的方式写了一个,顺便美化 ...
- Android底部菜单栏(图片+文字)
虽然网上有很多底部菜单栏的实现方式,但是实现方式各种各样,很多也不符合自己的口味,所以还是总结下底部菜单栏的实现方式,以便以后方便查询使用 实现方式一:通过TabWidget实现 这种方式主要是在布局 ...
- 安卓微信 返回显示未读条数_Android仿微信底部菜单栏功能显示未读消息数量
底部菜单栏很重要,我看了一下很多应用软件都是用了底部菜单栏,这里使用了tabhost做了一种通用的(就是可以像微信那样显示未读消息数量的,虽然之前也做过但是layout下的xml写的太臃肿,这里去掉了 ...
- android底部菜单栏demo
上一个项目已经做完了,这周基本上没事,所以整理了下以前的项目,想把一些通用的部分封装起来,这样以后遇到相似的项目就不用重复发明轮子了,也节省了开发效率.今天把demo贴出来一是方便以后自己查询,二是希 ...
- 小程序自定义底部菜单栏
问题:小程序的底部菜单栏基本的样式根本不能满足我们的审美要求,所以我们可以通过自己来自定义一套小程序底部栏,可以设置透明背景哟,想要什么样式都可以自己定义,好了,废话不多说,直接上代码! 首先在和pa ...
最新文章
- 平板python_Wacom平板电脑的Python示例
- qvector 结构体排序_C++结构体的应用_YCOJ
- linux给文件赋权限找不到,linux 文件赋权限
- Apache CXF 3.0:CDI 1.1支持可替代Spring
- 如何在Linux中找到您的IP地址
- TensorFlow2.0:模型的保存与加载
- 条件表达式计算个人所得税c语言,个税的计算C语言实现,结果为什么是负的?...
- JS中判断某个字符串是否包含另一个字符串的方法
- mysql单机热备份_mysql数据库热备份
- Apache Storm技术实战之3 -- TridentWordCount
- 易语言修改虚拟机硬盘id_易语言本地虚拟机源码
- 同济第七版高数资料(教材+习题解答)
- SoC,SiP,IP和Chiplet的区别
- DarkComet RAT简介
- 第十三届蓝桥杯大赛软件赛省赛 Python 大学 B 组
- 利用python对b站某GPT-4解说视频的近万条弹幕进行爬取、数据挖掘、数据分析、弹幕数量预测及情绪分类
- [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化
- IT行业招聘技巧--渠道篇
- NLP领域的最新研究进展
- Drools从入门到精通
热门文章
- stc和sac_短期成本曲线
- 8086可以用c语言编程吗,[求助]如何将C程序反汇编成8086汇编程序
- python3 socket sendall_全网最详细python中socket套接字send与sendall的区别
- python linux开发_python之Linux开发环境安装
- Java网络编程之UDP
- 【渝粤教育】国家开放大学2018年秋季 0221-22T数字电子电路 参考试题
- 深度优先遍历(DFS)例题
- ubuntu16.04中ROS-Kinetic安装Arbotix
- 一个农民工学习LINUX内核的艰辛历程/嵌入式的感受
- http://visualgo.net/ 数据结构可视化。。。。