2013-05-08 162 views
0

我在Android应用程序中创建一个LinearLayout,其中包含具有渐变灰色的默认按钮。这个LinearLayout现在是白色的,但当我尝试将背景颜色更改为黄色时,该按钮也变为黄色,我不希望发生这种情况。我也尝试使用彩色图像设置LinearLayout上的背景颜色,但同样的事情发生。我该如何解决这个问题?这里是代码:Android SDK:在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的布局视图中按钮变成彩色和透明时,按钮在我在手机上运行应用程序时不受影响。我认为它会在应用运行时显示相同的结果。奇怪的是如何成为在布局图中这样...

+0

你是如何设置按钮的背景的?它被按下时会变成灰色渐变吗? – 2013-05-08 14:46:43

+0

是的,但如果我这样做,那么按钮将变得完全平坦和矩形,其大小将被包裹到其中的文本的大小。布局的高度也将包裹到最小化的按钮。 – john13th 2013-05-08 15:56:51

回答

0

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

0

只设置按钮所处的背景分开。您可以使用state list drawable,即按钮的每个状态(按下,聚焦等)的不同背景以使其成为可自定义的。

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

+0

嗯,我可以使用主题AppTheme或AppBaseTheme,但它仍然产生相同的结果。我无法找到可能影响外观的styles.xml中的任何特定内容。 – john13th 2013-05-08 16:21:37