TabLayout+ViewPager实现的底部导航栏自定义控件

每次开发基本都要写底部导航栏,于是自己用自己喜欢的方式(TabLayout+ViewPager)封装了一个简单的控件,方便以后直接拿来用,当然实现导航栏方式很多,这里只介绍这一种.

github地址:github.com/jie35688/MyNavigationBar

首先为了能够动态设置ViewPager的滑动,先简单自定义了一个Viewpager,提供动态设置方法,当然也提供了自定义属性isScroll.

private boolean isScroll =true;

public MyViewPager (Context context) { super(context); }

public MyViewPager (Context context, AttributeSet attrs) {

    super(context,attrs);

    TypedArray array=context.obtainStyledAttributes(attrs, R.styleable.MyViewPager);

    if(arry != null) {

          isScroll = array.getBoolean(R.styleable.MyViewPager_isScroll,true);

          array.recycle();

     }

}

public void setScrool(booleanb) { isScroll = b};

@Override

public boolean onTouchEvent(MotionEvent ev) {

    if(isScroll) { return super.onTouchEvent(ev);}

    return false;

}

onInterceptTouchEvent()方法也类似这样返回.


接着,回到正题,这个控件名叫NavigationBar,继承自Framelayout,提供了addFragment(),和addTab(),可在Activity等界面方便的添加不同的Fragment以及对应的导航tab,需要注意的是要先添加fragment,再添加tab,最后要记得调用一下initTab(),这样就完成了.

NavigationBar navigationBar = (NavigationBar) findViewById(R.id.navigation_bar);

//添加自己需要的fragment

navigationBar.addFragments(newFirstFragment());

navigationBar.addFragments(newSecondFragment());

//添加自己需要的tab,数量要对应于fragment的数量

navigationBar.addTab(LayoutInflater.from(this).inflate(R.layout.tab_main,null));

navigationBar.addTab(LayoutInflater.from(this).inflate(R.layout.tab_category,null));

navigationBar.initTab();//添加完后要initTab

NavigationBar的具体封装可以下载源码查看:github.com/jie35688/MyNavigationBar

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一 自定义WeiXinTabChangeView 1 自定义属性attrs.xml: <?xml v...
    萱生活阅读 5,154评论 1 0
  • 原文地址:http://www.android100.org/html/201606/06/241682.html...
    AFinalStone阅读 4,626评论 0 1
  • Android Studio JNI流程首先在java代码声明本地方法 用到native关键字 本地方法不用去实现...
    MigrationUK阅读 14,079评论 7 123
  • 三月的风吹过 温暖的夜里 所有星星都跌落湖面 后来 我走了很多地方 遇到很多的人 可她们没有一个有手机有趣 我心里...
    文旅之眼阅读 1,137评论 0 0
  • 待我长发及腰 我已沧桑 人未央 独惜 待我长发及腰 令我一世无忧 长发撩起我一世的温柔 我邀岁月共度 今生不见 少...
    田萍阅读 1,085评论 1 5