真正的任务是在 Android 中使用 TextViews 作为按钮的自定义 ButtonBar(如下所示),每个按钮都应该反映它们的状态,按下/选择。
TextView 设置了以下背景,以反映不同的状态。Android TextView 支持哪些状态?例如,如果它支持按下/选择等状态,如何从 XML/代码更新 TextView?
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#ffffff">
<shape android:shape="rectangle">
<corners android:radius="16.5dp" />
<size android:width="168dp" android:height="34dp" />
<solid android:color="#000000" />
</shape>
</item>
<item android:color="#000000" >
<shape android:shape="rectangle" >
<corners android:radius="16.5dp" />
<size android:width="168dp" android:height="34dp" />
<solid android:color="#FFFFFF" />
</shape>
</item>
</selector>
下面的 TextView 代码片段供参考
<TextView
android:id="@+id/tv1"
android:layout_width="0dp"
android:layout_height="40dp"
android:background="@drawable/tv_background"
android:gravity="center"
android:maxLines="1"
android:onClick="@{() -> viewModel.onTvClicked()}"
android:text="@string/TVTEXT"
android:textSize="16sp"
app:layout_constraintBaseline_toBaselineOf="@+id/something"
app:layout_constraintEnd_toStartOf="@+id/otherthing"
app:layout_constraintStart_toStartOf="parent" />
谢谢你的时间 :)