美文网首页
搭建项目UI主框架

搭建项目UI主框架

作者: 夏沫丶浅吟 | 来源:发表于2017-11-09 17:35 被阅读0次

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

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

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

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

    在上述布局文件中,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;

    把它放到布局的最下边

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

    //未选中图标

    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<>();

    //定义分类名称

    //fragment中添加fragment集合

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

    //这是tabEntity类

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

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

    相关文章

      网友评论

          本文标题:搭建项目UI主框架

          本文链接:https://www.haomeiwen.com/subject/wvwpmxtx.html