CoordinatorTabLayout
来源:互联网 发布:低价顶级域名 编辑:程序博客网 时间:2024/05/22 00:40
CoordinatorTabLayout是一个自定义组合控件,可快速实现TabLayout与CoordinatorLayout相结合的样式继承至CoordinatorLayout, 在该组件下面使用了CollapsingToolbarLayout包含TabLayout
相关文档介绍:http://hugeterry.cn/dreams/559
用法
Step 1
在gradle文件中加入下面的依赖:
dependencies { compile 'cn.hugeterry.coordinatortablayout:coordinatortablayout:1.2.0'}
Step 2
在你自己的XML中使用它:
<cn.hugeterry.coordinatortablayout.CoordinatorTabLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/coordinatortablayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /></cn.hugeterry.coordinatortablayout.CoordinatorTabLayout>
Step 3
在使用它的界面添加以下设置:
1.setTitle(String title)
:设置Toolbar标题
2.setupWithViewPager(ViewPager viewPager)
:将写好的viewpager设置到该控件当中
3.setImageArray(int[] imageArray)
:根据tab数量设置好头部的图片数组,并传到该控件当中
//构建写好的fragment加入到viewpager中 initFragments(); initViewPager(); //头部的图片数组 mImageArray = new int[]{ R.mipmap.bg_android, R.mipmap.bg_ios, R.mipmap.bg_js, R.mipmap.bg_other}; mCoordinatorTabLayout = (CoordinatorTabLayout) findViewById(R.id.coordinatortablayout); mCoordinatorTabLayout.setTitle("Demo") .setImageArray(mImageArray) .setupWithViewPager(mViewPager);
大功告成,好好享用吧
更多功能
添加折叠后的颜色变化效果
setImageArray(int[] imageArray, int[] colorArray)
:如果你想要有头部折叠后的颜色变化,可将之前设置好的图片数组以及根据tab数量设置的颜色数组传到该控件当中
mColorArray = new int[]{ android.R.color.holo_blue_light, android.R.color.holo_red_light, android.R.color.holo_orange_light, android.R.color.holo_green_light}; mCoordinatorTabLayout.setImageArray(mImageArray, mColorArray);
设置头部状态栏透明
setTranslucentStatusBar(Activity activity)
:设置头部状态栏透明,在android4.4 及以上版本生效
mCoordinatorTabLayout.setTranslucentStatusBar(activity);
设置导航栏透明
setTranslucentNavigationBar(Activity activity)
:设置导航栏透明,在android4.4 及以上版本生效
mCoordinatorTabLayout.setTranslucentNavigationBar(activity);
添加返回
setBackEnable(Boolean canBack)
:设置Toolbar的返回按钮
@Override protected void onCreate(Bundle savedInstanceState) { ... mCoordinatorTabLayout.setBackEnable(true); ... } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); } return super.onOptionsItemSelected(item); }
通过网络加载头部图片
选择用网络来加载图片。可实现以下接口:setLoadHeaderImagesListener(LoadHeaderImagesListener loadHeaderImagesListener)
:设置获取头部图片的操作
@Override protected void onCreate(Bundle savedInstanceState) { ... mCoordinatorTabLayout.setTitle("Demo") .setBackEnable(true) .setContentScrimColorArray(mColorArray) .setLoadHeaderImagesListener(new LoadHeaderImagesListener() { @Override public void loadHeaderImages(ImageView imageView, TabLayout.Tab tab) { switch (tab.getPosition()) { case 0: //加载图片 break; ... } } }) .setupWithViewPager(mViewPager); }
你也可以选择用Glide/Picasso等网络框架来实现,代码例子
获取子控件
getActionBar()
:获取该组件中的ActionBargetTabLayout()
:获取该组件中的TabLayoutgetImageView()
:获取该组件中的ImageView
更多代码
属性
app:contentScrim
-> color.默认为?attr/colorPrimaryapp:tabIndicatorColor
-> color.app:tabTextColor
-> color.
- CoordinatorTabLayout
- CoordinatorTabLayout
- CoordinatorTabLayout的基本使用
- CoordinatorTabLayout注意点及使用.
- Linux 命令之 chmod:修改权限
- Shell
- Spring Boot学习(七)之Web应用使用Spring-data-jpa多数据源配置
- 扎心!在求职中diss你的不止是HR 还有招聘机器人 | 关注
- java8实战五:用流收集数据
- CoordinatorTabLayout
- CCF CSP 201409-1 相邻数对
- linux(ubuntu)下安装和启动kafka以及若干坑
- os.path.dirname/abspath函数
- 在Pypi上发布自己的Python包
- java基础_设计模式_命令模式二(以计算机读取内存和硬盘为例)
- 记一次maven的Missing artifact问题
- 放弃new,字面量让js更优美和谐简洁
- 抓取DHCP包