【问题标题】:Why do some UI elements change styles, while others don't?为什么一些 UI 元素会改变样式,而另一些则不会?
【发布时间】:2023-01-29 21:00:05
【问题描述】:

今天我尝试通过添加渐变、描边和圆角来改变按钮的颜色。 (在可绘制资源文件中完成)

我几乎成功了,边角变圆了,但按钮颜色保持标准(紫色_500)。

我尝试以不同的方式解决这个问题,但没有成功,然后我尝试将这些样式用于其他元素,它们改变了颜色

问题是为什么他们改变了颜色而按钮却没有?

带有样式的代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="180dp"/>
            <stroke android:width="5dip" android:color="@color/white"/>
            <gradient android:angle="360" android:startColor="@color/black" android:endColor="@color/white" />
        </shape>
    </item>
</selector>

活动代码:

   <TextView
        android:id="@+id/textView"
        android:layout_width="62dp"
        android:layout_height="46dp"
        android:layout_marginStart="180dp"
        android:layout_marginTop="192dp"
        android:background="@drawable/abc"
        android:text="TextView"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/editTextTextPersonName"
        android:layout_width="210dp"
        android:layout_height="55dp"
        android:layout_marginStart="108dp"
        android:layout_marginTop="260dp"
        android:background="@drawable/abc"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="226dp"
        android:layout_height="56dp"
        android:layout_marginStart="92dp"
        android:layout_marginTop="336dp"
        android:background="@drawable/abc"
        android:text="Button"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

结果屏幕:enter image description here

我试图弄清楚按钮是如何知道它的颜色的,当然它是从 color.xml 中获取的,但是它的变化并没有导致预期的结果,因为需要渐变

【问题讨论】:

    标签: java android-studio


    【解决方案1】:

    使用“androidx.appcompat.widget.AppCompatButton”代替按钮。

        android:background="@drawable/abc"
        android:gravity="center"
        app:backgroundTint="@null"
        android:textColor="@color/black"
    

    【讨论】:

      猜你喜欢
      • 2021-12-06
      • 1970-01-01
      • 2011-12-14
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      相关资源
      最近更新 更多