非常简单的为Android设置TabBar

来源:互联网 发布:网络直播开场白 编辑:程序博客网 时间:2024/06/06 18:26

TabBarViewForAndroid

非常非常简单的为项目设置上TabBar,你可能会说我自己都写过无数遍这种代码了,你能简单到哪里去?别急,看看这篇博客再说。

效果展示

效果展示1
效果展示2

导入步骤

  1. 去这里下载项目
  2. 将tabbarview做为moudle导入
  3. 在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
原创粉丝点击