搭建项目UI主框架

Android项目一般是有俩种不同类型的主界面:

1、一个主界面activity包含不同的可点击的fragment页面(可以左右滑动也可以只点击,类似微信)

2、主界面中包含侧滑删除的drawablelayout+主页面点击切换的fragment(可以左右滑动也可以只点击,类似QQ)

1和2的区别就是有一个侧滑栏,这个侧滑栏是v4包里的drawableLayout布局,控件全称是android.support.v4.widget.DrawerLayout,布局文件如下图:

搭建项目UI主框架_第1张图片

在上述布局文件中,LinearLayout是侧滑栏布局的groupView,保证这块view从屏幕侧面滑出来的代码是layout_gravity,为其复制 L、T、R、B四个方向,可以保证侧滑栏可以从我们想要的任意区域滑出来。不过有一个问题是,我们必须将主界面布局view放到侧滑栏view的前边,(是布局文件中的代码位置,具体原因不清,但是如果侧滑栏代码在上方,侧滑可以滑出来但是滑不回去)。

1、如何手动触发显示与隐藏侧滑栏?

DrawLayout.closeDrawer()是隐藏侧滑栏的

DrawLayout.openDrawer()是显示侧滑栏的

在代码中,DrawLayout侧滑栏可以被DrawLayout.DrawListener监听到,也就是说,我们可以在侧滑栏的展开与隐藏这个瞬时过程中做一些操作,在监听的回调方法中我们用invalidateOptionsMenu通知activity重绘menu,然后activity就有机会在onPrepareOptionsMenu方法中更新menu元素的显示与隐藏。

上述是俩种不同类型节目的差别设置,现在开始说主界面的点击切换或者是滑动切换布局:

之前我一直是用RadioRroup+fragment(viewpager)来切换界面的发现这样冗余代码特别多,现在大量使用tableLayout+Fragment  代码会精简许多,核心代码如下:

首先在model的gradle中引用  compile'com.android.support:design:25.0.0'

布局文件中定义一个tablayout;

搭建项目UI主框架_第2张图片
把它放到布局的最下边


布局剩余部分留给viewpager,viewPager可以自定义成不滑动的页面

搭建项目UI主框架_第3张图片

//未选中图标

private int[] mIconUnselectIds= {

R.mipmap.nav_word_nomal,R.mipmap.nav_news_nomal,

R.mipmap.nav_activity_nomal,R.mipmap.nav_video_nomal,R.mipmap.nav_my_nomal};

//选中图标

private int[] mIconSelectIds= {

R.mipmap.nav_word_press,R.mipmap.nav_news_press,

R.mipmap.nav_activity_press,R.mipmap.nav_video_press,R.mipmap.nav_my_press};

//每一个分类名称

privateString[] mTitles=new String[5];

//对应的fragment集合

private ArrayList mFragments=new ArrayList<>();

//每个分类的类对象

private ArrayList mTabEntities=new ArrayList<>();

//定义分类名称

搭建项目UI主框架_第4张图片

//fragment中添加fragment集合

搭建项目UI主框架_第5张图片

//tabLayout集合中添加tabEntity对象,传入构造参数,第一个参数是分类名称,第二个参数是选中的图片资源,第三个参数是未选中的图片资源 

//这是tabEntity类

搭建项目UI主框架_第6张图片

//将tabLayout和fragment数据、页面绑定起来,并实现监听

搭建项目UI主框架_第7张图片

这样的一级界面框架是不能滑动切换的,但是点击切换非常流畅。

你可能感兴趣的:(搭建项目UI主框架)