依赖:implementation ‘com.android.support:design:28.0.0’
- MaterialButton:
MaterialButton组件继承于Button,因此可以使用Button的大部分属性,可以更便捷的设置按钮圆角、边框、图标等属性
android:textAppearance:设置文字的外观
属性 | 介绍 |
---|---|
app:backgroundTint | 按钮背景着色 |
app:backgroundTintMode | 按钮背景的着色模式 |
app:icon | 按钮图标(在文字左边,不能设置位置) |
app:iconSize | app:iconSize |
app:iconPadding | 按钮图标的内边距 |
app:iconTint | 按钮图标着色 |
app:iconTintMode | 按钮图标的着色模式 |
app:additionalPaddingStartForIcon | 按钮图标的左内边距 |
app:additionalPaddingEndForIcon | 按钮图标的右内边距 |
app:strokeColor | 按钮边框颜色 |
app:strokeWidth | 按钮边框宽度 |
app:cornerRadius | 按钮圆角角度 |
app:rippleColor | 按钮点击水波纹效果颜色 |
- FloatingActionButton:
界面浮动的标签,一般用于页面关键功能入口
属性 | 介绍 |
---|---|
fabSize | 定义FloatingActionButton的大小。auto(大) mini(小)normal(中) |
elevation | 普通状态下的阴影深度 |
pressedTranslationZ | 按下时的阴影深度 |
backgroundTint | 默认展示的背景颜色 |
rippleColor | 按下时的颜色(5.0以后为水波纹的颜色) |
layout_anchor | 定位其他控件,和其他控件边界相交 |
layout_anchorGravity | 和layout_anchor属性联用,在其他控件的相对位置 |
useCompatPadding | 设置内边距 |
borderWidth | 边框宽度(使用的比较少,效果也不好看) |
- NavigationView:
NavigationView用来实现侧滑导航的布局,必须与DrawerLayout组合使用
app:headerLayout="@layout/header_layout"表示引用一个头布局文件,这个头就是我们在上面看到的那个背景图片,包括背景图片上面的显示用户名的控件等等
app:menu="@menu/main"表示引用一个menu作为下面的点击项
head
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="match_parent"
android:layout_height="120dp"
android:src="@mipmap/ic_launcher"/>
</LinearLayout>
menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/item1" android:title="呵呵"/>
<item android:id="@+id/item2" android:title="哈哈"/>
<item android:id="@+id/item3" android:title="呵呵"/>
<item android:id="@+id/item4" android:title="嘿嘿"/>
<item android:id="@+id/item5" android:title="呵呵"/>
</menu>
<?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"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.v4.widget.DrawerLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/content_btn"
android:text="开关抽屉" />
<android.support.design.widget.NavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:headerLayout="@layout/layout_head"
app:menu="@menu/menu_navigation"
app:itemIconTint="@null"
android:layout_gravity="left" />
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
- CoordinatorLayout+
CollapsingToolbarLayout+ AppBarLayout:
AppBarLayout是一个垂直的 LinearLayout;
CollapsingToolbarLayout
是不能独立存在的,它必须只能作为AppBarLayout 的子布局来使用
app:contentScrim 指定布局内部未展开时的背景颜色
app:collapsedTitleTextAppearance 指定未展开时的标题文字字体
app:collapsedTitleTextColor 指定未展开时的标题文字颜色
app:collapsedTitleGravity 指定未展开时的标题文字对齐方式
app:expandedTitleTextAppearance 指定展开后的标题文字字体
app:expandedTitleTextColor 指定展开后的标题文字颜色
app:expandedTitleGravity 指定展开后的标题文字对齐方式
app:expandedTitleMargin 指定展开后的标题四周间距
在CollapsingToolbarLayout中配置不同layout_scrollFlags属性,会产生不同的效果
设置为scroll
CollapsingToolbarLayout随着手势一起滑动
设置为enterAlways下滑时CollapsingToolbarLayout先进入
设置为enterAlwaysCollapsed下滑时CollapsingToolbarLayout先进入但只显示Toolbar。
设置为exitUntilCollapsed
CollapsingToolbarLayout随着手势一起滑动到只显示Toolbar。
设置为snap
CollapsingToolbarLayout会根据手势自动滑入滑出
app:layout_behavior="@string/appbar_scrolling_view_behavior",他的作用是让使用这个属性的View在appbar下面滚动
ka一半
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="200dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/ic_launcher"/>
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="80dp">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="50sp"
android:text="ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa"
/>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
卡toolbar
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="180dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:contentScrim="#f0f0f0">
<com.youth.banner.Banner
android:id="@+id/home_banner"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#002196F3"
app:layout_collapseMode="pin">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa
ldsafjkdajfldsajfdlsa;jfdsa"
android:textSize="50sp" />
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
CardView
CardView是一个继承FrameLayout的View。用于布局的圆角、阴影等效果。基本使用只要知道CardView一些常用属性即可
依赖:implementation’com.android.support:cardview-v7:28.0.0’
cardElevation:阴影的大小
cardElevation:阴影最大高度
cardBackgroundColor:卡片的背景色
cardCornerRadius:卡片的圆角大小
contentPadding:卡片内容于边距的间隔
contentPaddingBottom:卡片内容与底部的边距
contentPaddingTop:卡片内容与顶部的边距
contentPaddingLeft:卡片内容与左边的边距
contentPaddingRight:卡片内容与右边的边距
contentPaddingStart:卡片内容于边距的间隔起始
contentPaddingEnd:卡片内容于边距的间隔终止
cardUseCompatPadding:设置内边距,V21+的版本和之前的版本仍旧具有一样的计算方式
cardPreventConrerOverlap:在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠