Android Design支持包控件介绍
来源:互联网 发布:周有贵seo教程 编辑:程序博客网 时间:2024/06/07 17:16
Android5.0是有史以来最重要的安卓版本之一,这其中有很大部分要归功于material design的引入,这种新的设计语言让整个安卓的用户体验焕然一新。歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果。这篇文章将介绍常用的一下几种控件。
1、CoordinatorLayout
用新的思路通过协调调度子布局的形式实现触摸影响布局的形式产生动画效果。继承自framlayout,是framlayout的扩展类,比他功能更加强大,能够支持很多绚丽的效果,一般作为父布局。
2、CollapsingToolbarLayout
用来对Toolbar进行再次包装的ViewGroup,主要是用于实现折叠,伸缩的App Bar效果。它需要放在AppBarLayout布局里面,并且作为AppBarLayout的直接子View,主要是提供一个可折叠的Toolbar容器,对容器中的不同View设置layout_collapseMode折叠模式,来达到不同的折叠效果。作为AppBarLayout的子布局进行配合使用。通常有两个子控件,一个是ImageView,一个是Toobar,Toobar主要是用来替换ActionBar的,所以在使用之前首先要隐藏掉。可以通过代码的方式隐藏,也可以通过配置文件的方式,还可以通过清单文件配置隐藏:
(1)在我们的styles.xml文件中的AppTheme标签中加入如下两行:
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
(2)在清单文件中加入
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
相关属性设置如下:
app:contentScrim="@android:color/holo_blue_dark";//titebar的背景颜色
app:title="赵丽颖";//titlebar所展示的字体
app:scrimAnimationDuration="50";//该属性控制toolbar收缩时,颜色变化的动画持续时间。即颜色变为contentScrim所指定的颜色进行的动画所需要的时间。
app:expandedTitleGravity="bottom|right";//titebar展开后字体显示的位置
app:collapsedTitleGravity="center_horizontal";//titlebar到最上边时候的显示位置
app:titleEnabled="true";//是否显示标题文本
app:expandedTitleMargin="20dp";//展开之后的文字margin
android:fitsSystemWindows="true";//预留空间,能够实现沉浸式状态栏效果
app:layout_collapseParallaxMultiplier="0.7";//设置视差的系数,介于0.0-1.0之间。越大视差越大
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar";//主题颜色
app:layout_scrollFlags="scroll|exitUntilCollapsed";//支持滑动收缩效果
子类可收缩的View:
app:layout_collapseMode="parallax";//View随着控件的滑动而收缩
Toolbar:
app:layout_collapseMode="pin";//pin收缩后固定于最顶端,parallax随着控件滑动收缩而收缩
3、AppBarLayout
AppBarLayout主要用来设置头布局,继承自linearlayout,他包含CollapsingToolbarLayout子布局和其他布局,CollapsingToolbarLayout能够实现视差伸缩滑动效果,其他子布局一般是导航栏,例如TabLayout。
4、TabLayout
TabLayout:类似于viewpagerindicator,radiobutton+viewpager,实现叶签滑动效果http://blog.csdn.net/yoonerloop/article/details/70766002点击打开链接
5、CardView
CardView是在安卓5.0提出的卡片式控件。
app:cardBackgroundColor="#6699FF";//设置选项卡的背景
app:cardCornerRadius="7dp";//设置选项卡的圆角大小
app:cardElevation="7dp";//设置选项卡的阴影背景大小
app:cardMaxElevation="10dp"//设置z轴的最大高度值
app:cardUseCompatPadding="true";//兼容android5.0以上版本两个卡片之间的距离失效问题
android:clickable="true";//点击产生水波纹效果
padding设置:
app:contentPadding 设置内容的padding
app:contentPaddingLeft 设置内容的左padding
app:contentPaddingTop 设置内容的上padding
app:contentPaddingRight 设置内容的右padding
app:contentPaddingBottom 设置内容的底padding
6、FloatingActionButton
android:layout_gravity="end|bottom";//在布局上的显示 位置
app:borderWidth="0dp";//按钮内边框阴影带边框大小
app:backgroundTint="#f00";//按钮图片外围颜色
app:elevation="6dp";//按钮外边框阴影带的大小
app:pressedTranslationZ="52dp";//点击后阴影扩散的效果
app:rippleColor="#33728dff";//按钮边框阴影的颜色,默认取的是theme中的colorControlHighlight。
android:clickable="true";//点击产生水波纹效果
7、NestedScrollView
和ScrollView一样,区别是对新的控件做了一些兼容,类似于listview与recycleView。
8、NavigationView
NavitationView就是DrawerLayout侧边栏的那个菜单。这个菜单整体上分为两部分,上面一部分叫做HeaderLayout,下面的那些点击项都是menu。HeaderLayout是一个布局,根据需求设置,menu主要是每个item。
android:layout_gravity="left"属性表示该View是左边的滑出菜单。
app:headerLayout="@layout/header_layout";//表示引用一个头布局文件。
app:menu="@menu/main";//表示引用一个menu作为下面的点击项item。
app:itemIconTint="@color/blue";//标识为图片设置颜色,默认是灰色。
navigationView.setItemIconTintList(null); //设置图片颜色为图片显示的默认颜色
app:theme="@style/MenuTextStyle";//设置item字体大小,背景颜色等等主题
menu设置:
<item
android:id="@+id/file"
android:icon="@mipmap/ic_launcher"
android:title="设置"/>
android:icon="@mipmap/ic_launcher";//设置item的左边图标
android:title="设置";//设置item右侧文字
默认没有分割线,如果需要分割线则需要在item外层嵌套一个<group android:id="@+id/g1"></group>,并加上id.
View headerView = navigationView.getHeaderView(0);//获取头布局的第一个控件
//设置item点击事件
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
//在这里处理item的点击事件
return true;
}
});
9、BottomNavigationView
BottomNavigationView是Google推出的底部导航栏组件,在没有这些底部导航组件之前,开发者多使用的是RadioGroup,他的用法和上面的NavitationView比较类似,看看他的属性:
app:itemIconTint是设置底部导航按钮图标颜色的属性
app:itemTextColor是设置底部导航按钮文字颜色的属性
xml中的布局如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.glidedemo.MainActivity"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <android.support.design.widget.BottomNavigationView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:attr/windowBackground" app:itemIconTint="@drawable/tab_text_color_selector" app:itemTextColor="@drawable/tab_text_color_selector" app:menu="@menu/navigation"> </android.support.design.widget.BottomNavigationView></LinearLayout>menu文件夹和上面的也很类似:
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/tab_one" android:icon="@drawable/tab_text_color_selector" android:title="综合"/> <item android:id="@+id/tab_two" android:icon="@drawable/tab_text_color_selector" android:title="本地"/> <item android:id="@+id/tab_three" android:icon="@drawable/tab_text_color_selector" android:title="我的"/></menu>在Activity中点击事件的切换的监听如下:
mNavigationView.setOnNavigationItemSelectedListener( new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { mTextView.setText(item.getTitle().toString().toUpperCase()); return true; } }); }
注意:这控件有以下坑:
1、底部导航栏高度默认是 56dp。
2、菜单元素只能是 3~5 个。如果个数少于3个或者多于5个,则会报错。
3、菜单元素如果大于3个,会出现切换时选中菜单的放大效果,无法设置,只能通过反射取消。
4、底部导航栏背景颜色默认是当前样式的背景色(白色/黑色),你可以使用 app:itemBackground="@android:color/black" 来更改。
以上就是material design包中常用的控件,以后还会陆续补充,关于这些新控件的应用见下一篇博文:点击打开链接
http://blog.csdn.net/yoonerloop/article/details/71411499
- Android Design支持包控件介绍
- Android Design包下控件
- Material Design Android控件介绍
- Android support library支持包常用控件介绍(一)
- Android support library支持包常用控件介绍(一)
- Android support library支持包常用控件介绍(二)
- Android最新支持包Design简介
- Android Design Support控件介绍之TabLayout
- Android L、M扩展支持包design中widget:TabLayout
- Android中design包中的新控件1
- Android中design包中的新控件2
- android的Design包里面的一些控件的应用
- Android中Design包下八大控件及详解
- Android Design Support Library 中控件的使用简单介绍(一)介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android
- Android Design Support Library 中控件的使用简单介绍
- Android Design Support Library常用控件介绍(上)
- design包8种控件
- android design 新控件
- C语言学习历程——编程练习2——10
- 装饰模式
- 基于Spark实时计算商品关注度
- 批量生成 按月分裂最大分区语句
- Spring applicationContext.xml 路径配置(1)
- Android Design支持包控件介绍
- MobileWeb 适配总结
- 轻量级ERP管理 掌巡
- Lua中 面向对象 概念和 class相关
- 第七章 React组件API
- 观察者模式
- 微信小程序开发—(四)上传图片
- Http协议的简单理解
- 离散基础 (10). 模运算