MaterialButtonToggleGroup中按钮样式
2020-05-20 本文已影响0人
_蘇芳_
我这边做因为数据是动态获取的,本来想用recyclerview来做,突然想起来某个版本加了这东西。看演示,别人的是这样的,
我做完是这样,注意这不是全选中,而是全没选中的样子。。
image.png
image.png
然后查了下官网,发现要对MaterialButtonToggleGroup
内部的MaterialButton
加上style="?attr/materialButtonOutlinedStyle"
的样式。
因为我是动态添加的,所以没有在xml写了,代码是这样的
btnToggleGroup.addView(createBtnToggle( "-"))
private fun createBtnToggle(content: String): Button {
val btn = MaterialButton(
requireContext(),
null,
R.attr.materialButtonOutlinedStyle
)
val layoutParam = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
btn.layoutParams = layoutParam
btn.setPadding(16f.dp.toInt(), 8f.dp.toInt(), 16f.dp.toInt(), 8f.dp.toInt())
btn.text = content
btn.textSize = 20f.sp
return btn
}
如果在xml里用,那直接官网上这样就行
<com.google.android.material.button.MaterialButtonToggleGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toggle_button_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.google.android.material.button.MaterialButton
style="?attr/materialButtonOutlinedStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_label_private"/>
<com.google.android.material.button.MaterialButton
style="?attr/materialButtonOutlinedStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_label_team"/>
<com.google.android.material.button.MaterialButton
style="?attr/materialButtonOutlinedStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_label_everyone"/>
<com.google.android.material.button.MaterialButton
style="?attr/materialButtonOutlinedStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_label_custom"/>
</com.google.android.material.button.MaterialButtonToggleGroup>