【问题标题】:Android SDK: Button becomes colored when changing the background color on LinearLayoutAndroid SDK:在 LinearLayout 上更改背景颜色时,按钮变为彩色
【发布时间】:2013-05-02 20:06:12
【问题描述】:

我现在正在创建的 Android 应用程序中有一个 LinearLayout,其中包含一个带有渐变灰色的默认按钮。这个 LinearLayout 现在是白色的,但是当我尝试将背景颜色更改为黄色时,按钮也会变成黄色,这是我不希望发生的。我还尝试使用彩色图像在 LinearLayout 上设置背景颜色,但同样的事情发生了。我该如何解决这个问题?代码如下:

  <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center"
     android:orientation="horizontal"
     android:background="@color/yellow">

     <Button
        android:id="@+id/buttonCart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"/>
  </LinearLayout>

已解决:等等,它现在确实有效。虽然按钮在 Eclipse 的布局视图中变为彩色和透明,但当我在手机上运行应用程序时,按钮不受影响。我认为运行应用程序时它会显示相同的结果。奇怪的是它在布局视图中是如何变成这样的......

【问题讨论】:

  • 你是如何设置按钮的背景的?按下时会变成灰色渐变吗?
  • 是的,但是如果我这样做了,那么按钮将变得完全平坦和矩形,并且它的大小将被包装成其中文本的大小。布局的高度也将包裹到最小化的按钮。

标签: android button colors background android-linearlayout


【解决方案1】:

在这种情况下,您也可以为按钮设置灰色背景色android:background="#A4A4A4"..

【讨论】:

    【解决方案2】:

    只需单独设置按钮的背景即可。您可以使用state list drawable,即为按钮的每个状态(按下、聚焦等)设置不同的背景,以使其完全自定义。

    我不确定为什么背景颜色会随着布局而变化。听起来您的按钮默认为透明的。检查您的 styletheme 以确保这不会影响显示的内容。

    【讨论】:

    • 嗯我可以使用主题 AppTheme 或 AppBaseTheme 但它仍然产生相同的结果。我在styles.xml 中找不到任何可能影响外观的细节。
    猜你喜欢
    • 2021-07-05
    • 2015-06-04
    • 1970-01-01
    • 2015-09-09
    • 2015-10-29
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多