MaterialButton是Google于SDK28推出的新控件阳藻,當遇到按鈕需要圓角、或者描邊等壤玫,就不必使用xml文件或者Github上找第三方庫實現(xiàn)精绎。
效果預覽
button-1
依賴引入
-
添加依賴
com.google.android.material:material:1.3.0
-
app 的theme主題修改
android:theme="@style/Theme.MaterialComponents.Light.NoActionBar"
繼承關系
java.lang.Object
?android.view.View
?android.widget.TextView
?android.widget.Button
?androidx.appcompat.widget.AppCompatButton
?com.google.android.material.button.MaterialButton
MaterialButton繼承AppCompatButton,所以它擁有AppCompatButton所有的特性,且在其基礎上做了一些擴展杏头,如圓角盈包、描邊、前置和后置icon(支持設置Size醇王、Tint呢燥、Padding、Gravity等)寓娩,還支持按壓水波紋并且自定義顏色叛氨。
關鍵屬性
image.png
注意事項
不可以使用
android:background
設置按鈕背景呼渣,會破壞MaterialButton本身的繪制,而設置背景則推薦使用app:backgroundTint
-
MaterialButton創(chuàng)建后寞埠,按鈕實際長度并不是設定值屁置,因為它上下有留空,可以使用
android:insetBottom="0dp"
和
android:insetTop="0dp"去除 -
去除陰影
MD控件默認有陰影效果仁连,但是有時候我們并不想要按鈕有陰影蓝角,那么這時候可以指定style為
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
這樣就能去掉陰影,讓視圖看起來扁平化 -
閃退
修改APP主題
android:theme="@style/Theme.MaterialComponents.Light.NoActionBar"
MaterialButtonToggleGroup
效果預覽
-
單選
image.png
-
多選
image.png
繼承關系
java.lang.Object
?android.view.View
?android.view.ViewGroup
?android.widget.LinearLayout
?com.google.android.material.button.MaterialButtonToggleGroup
類似一個LinearLayout饭冬,但只能添加MaterialButton使鹅,只有第一個子元素的最左邊角和最后一個子元素的最右邊角才能保留它們的形狀外觀圓角大小,類似于iOS中的SegmentedControl伍伤, 用戶可以從組中選擇一個或多個選項并徘。
公開屬性
image.png
tab切換監(jiān)聽
MaterialButtonToggleGroup materialButtonToggleGroup = findViewById(R.id.toggleGroup);
materialButtonToggleGroup.addOnButtonCheckedListener(new MaterialButtonToggleGroup.OnButtonCheckedListener() {
@Override
public void onButtonChecked(MaterialButtonToggleGroup group, int checkedId, boolean isChecked) {
Toast.makeText(MainActivity.this, "ID:" + checkedId + ", checked:" + isChecked, Toast.LENGTH_SHORT).show();
}
});