非常简单的为Android设置TabBar
来源:互联网 发布:网络直播开场白 编辑:程序博客网 时间:2024/06/06 18:26
TabBarViewForAndroid
非常非常简单的为项目设置上TabBar,你可能会说我自己都写过无数遍这种代码了,你能简单到哪里去?别急,看看这篇博客再说。
效果展示
导入步骤
- 去这里下载项目
- 将tabbarview做为moudle导入
- 在gradle的dependencies添加compile project(‘:tabbarview’)
使用步骤
1.在需要使用TabBar的Activity中的布局文件加入TabBarView标签:
<com.pzhu.tabbarview.TabBarView android:layout_width="match_parent" android:layout_height="match_parent"></com.pzhu.tabbarview.TabBarView>
2.添加命名空间 xmlns:app="http://schemas.android.com/apk/res-auto"
3. 在TabBarView中加入子标签
<com.pzhu.tabbarview.Page android:layout_width="100dp" android:layout_height="100dp" app:page="com.pzhu.test.fragment.AFragment" app:text="首页" app:icon_normal="@drawable/tab1" app:icon_select="@drawable/tab_click1" app:checked="true" app:text_color_normal="#777" app:text_color_select="#f00" />
4.完整代码
<com.pzhu.tabbarview.TabBarView android:layout_width="match_parent" android:layout_height="match_parent"> <com.pzhu.tabbarview.Page android:layout_width="100dp" android:layout_height="100dp" app:page="com.pzhu.tabbartest.fragment.AFragment" app:text="首页" app:icon_normal="@drawable/tab1" app:icon_select="@drawable/tab_click1" app:checked="true" app:text_color_normal="#777" app:text_color_select="#f00" /> <com.pzhu.tabbarview.Page android:layout_width="100dp" android:layout_height="100dp" app:page="com.pzhu.tabbartest.fragment.BFragment" app:text="个人中心" app:icon_normal="@drawable/tab2" app:icon_select="@drawable/tab_click2" app:text_color_normal="#777" app:text_color_select="#f00" /> </com.pzhu.tabbarview.TabBarView>
Page里属性含义
text -> tab文字 icon_normal -> tab未选中时的图标 icon_select -> tab选中时的图标 checked -> 初始化选中项 text_color_normal -> tab未选中时文字颜色 text_color_select -> tab选中时文字颜色 page -> tab对应的fragment tips:fragment是包名加类名全路径
排列方式
TabBar按照子节点排列顺序从左到右显示
需要注意的地方
fragment在每次显示到界面的时候都要进行重绘(了解fragment的应该知道这个机制),就是会多次调用onCreateView()方法,为了避免这个重复的重绘,所以需要在fragment里进行缓存,参考代码
public class AFragment extends Fragment { private View rootView; private ProgressDialog myDialog; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (rootView == null) { TextView tv = new TextView(getActivity()); tv.setText("AFragment"); myDialog = new ProgressDialog(getActivity()); myDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); myDialog.setMessage("处理中……"); myDialog.setIndeterminate(false); myDialog.setCancelable(false); myDialog.show(); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { myDialog.dismiss(); } },3000); rootView = tv; } ViewGroup parent = (ViewGroup) rootView.getParent(); if (parent != null) { parent.removeView(rootView); } return rootView; }}
这是我测试用的,你们可以根据自己的需求来进行这部分。
多余的话
这个目前还有许多缺点,希望各位在使用的过程中有想要实现的需求或者不足的地方与我联系 15680351591@163.com 谢谢
1 0
- 非常简单的为Android设置TabBar
- 通用tabBar为根视图的架构设置
- NavBar和TabBar简单设置
- iOS将系统tabbar设置为透明
- Android自定义的TabBar
- 非常简单的android广播示例
- android studio 非常实用简单的快捷键
- TabBar自定义图片的设置
- 统一设置TabBar的属性
- Swift中如何通过KVC将自定义的UITabbar设置为UITabbarController的tabbar
- tabBar设置
- Android 简单设置Activity为dialog样式
- android tabbar切换的实现
- ajax非常简单的
- 非常简单的命令
- IOS7上设置TabBar的图片
- iOS开发-设置tabBar的背景图片
- iOS开发tabbar的设置及隐藏
- Huffman编解码
- notepad++的好用快捷键整理
- LDR,ADRL,ADR,NOP伪指令
- C++抽象编程——面向对象(2)——结构体与类
- Raft论文翻译
- 非常简单的为Android设置TabBar
- CDOJ 1222--Sudoku【DFS && 数独】
- Binder源码解析(从客户端到服务端代码流程)
- Notepad++ 快捷键列表及自定义快捷键
- 数据操作语句-1
- 15题 flag的应用
- "数据结构动画演示"文件分享
- 对给定值进行操作
- vitamio5.x的简单使用