新增的Design Support Library 28库又新增了几个使用的控件
MaterialButton
<android.support.design.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Material Button"
android:textAppearance="?android:attr/textAppearanceLargeInverse"
/>
android:textAppearance貌似必须设置,否则报错
其他属性
属性 | 介绍 |
---|---|
app:backgroundTint | 按钮背景着色 |
app:backgroundTintMode | 按钮背景的着色模式 |
app:icon | 按钮图标(在文字左边,不能设置位置) |
app:iconSize | 按钮图标大小 |
app:iconPadding | 按钮图标的内边距 |
app:iconTint | 按钮图标着色 |
app:iconTintMode | 按钮图标的着色模式 |
app:additionalPaddingStartForIcon | 按钮图标的左内边距 |
app:additionalPaddingEndForIcon | 按钮图标的右内边距 |
app:strokeColor | 按钮边框颜色 |
app:strokeWidth | 按钮边框宽度 |
app:cornerRadius | 按钮圆角角度 |
app:rippleColor | 按钮点击水波纹效果颜色 |
官网上明确说不要使用background来设置颜色
TintMode
TintMode是改变我们着色的模式。
Mode的取值有六种
- add 两层绘制叠加融合
- screen 上下层都显示(就像是多了块tint色的玻璃)
- src_over tint色覆盖住图片,都显示
- src_in 默认 取交集,显示上层
- multiply 取两层绘制的交集
- src_atop 取下层非交集部分与上层交集部分
具体可以参考PorterDuff.Mode
2018-09-04_105137.pngChip & ChipGroup
我们一直都是通过自定义控件的形式来实现关键字标签等UI效果的,但是现在原生支持了
简单的示例
<android.support.design.chip.ChipGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:singleLine="false"
app:singleSelection="true"
app:chipSpacingHorizontal="10dp"
app:chipSpacingVertical="5dp"
android:id="@+id/chipgroup">
<android.support.design.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="男"
android:clickable="true"
android:textAppearance="?android:attr/textAppearanceLargeInverse"/>
<android.support.design.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="女"
android:clickable="true"
android:textAppearance="?android:attr/textAppearanceLargeInverse"
/>
</android.support.design.chip.ChipGroup>
以上就完成了一个简单的标签单选,同时注意android:textAppearance="?android:attr/textAppearanceLargeInverse"一定要设置,否则报错。设置checkable属性为true,chip才能有被选中的样式。同时ChipGroup设置了app:singleSelection="true"才能回调下面方法(多选无用),取消选中i为-1。
mChipGroup.setOnCheckedChangeListener(new ChipGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(ChipGroup chipGroup, int i) {
}
});
ChipGroup属性速查表
属性 | 介绍 |
---|---|
app:chipSpacing | Chip在水平&垂直方向的间距 |
app:chipSpacingHorizontal | Chip在水平方向的间距 |
app:chipSpacingVertical | Chip在垂直方向的间距 |
app:singleLine | 是否单行显示Chip,默认为false |
app:singleSelection | 是否为单选模式,默认为false |
Chip属性
属性 | 介绍 |
---|---|
app:chipBackgroundColor | Chip背景颜色 |
app:chipCornerRadius | Chip圆角角度 |
app:chipStrokeColor | Chip边框颜色 |
app:chipStrokeWidth | Chip边框宽度 |
app:rippleColor | Chip点击水波纹效果颜色 |
app:chipIconEnabled | 是否在Chip上显示图标,默认为true |
app:chipIcon | Chip图标(在文字左边,不能设置位置,一般在checked等于false的时候使用,会跟checkedIcon叠加) |
app:chipIconSize | Chip图标大小 |
app:closeIconEnabled | 是否显示Chip关闭按钮,默认为false,文字的后面,可以通过mChip.setOnCloseIconClickListener设置监听 |
app:closeIcon | Chip关闭按钮图标 |
app:closeIconTint | Chip关闭按钮着色 |
app:closeIconSize | Chip关闭按钮大小 |
app:checkedIconEnabled | 是否显示Chip选中图标,默认为true |
app:checkedIcon | Chip选中图标 |
app:chipStartPadding | Chip左内边距 |
app:chipEndPadding | Chip右内边距 |
app:iconStartPadding | Chip图标左内边距 |
app:iconEndPadding | Chip图标右内边距 |
app:textStartPadding | Chip文字左内边距 |
app:textEndPadding | Chip文字右内边距 |
app:closeIconStartPadding | Chip关闭图标左内边距 |
app:closeIconEndPadding | Chip关闭图标右内边距 |
MaterialCardView
于CardView类似,多了两个属性颜色app:strokeColor,宽度app:strokeWidth。而且是内边框
BottomAppBar
貌似没啥用
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_add"
app:fabSize="normal"
app:layout_anchor="@id/bottom_app_bar" />
<android.support.design.bottomappbar.BottomAppBar
android:id="@+id/bottom_app_bar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="bottom"
app:backgroundTint="@color/colorPrimary"
app:fabAlignmentMode="end" />
</android.support.design.widget.CoordinatorLayout>
属性 | 介绍 |
---|---|
app:backgroundTint | BottomAppBar背景着色 |
app:fabAlignmentMode | FAB位置(居中或居右),默认为居右 |
app:fabAttached | 是否绑定FAB,默认为true |
app:fabCradleMargin | BottomAppBar与FAB的距离,默认为5dp |
app:fabCradleRoundedCornerRadius | BottomAppBar与FAB相邻处的圆角角度,默认为8dp |
app:fabCradleVerticalOffset | FAB在BottomAppBar中的垂直偏移量,默认为0dp |
网友评论