首页 > 解决方案 > Android TextView 是否支持 state_pressed 状态?

问题描述

真正的任务是在 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" />

谢谢你的时间 :)

标签: androidtextviewstatelistdrawable

解决方案


推荐阅读