更改按钮的颜色会将整个布局颜色更改为白色

时间:2017-10-29 19:43:02

标签: android

我在Android Studio中遇到了一个非常奇怪的问题。我有一个带有EditText对象和一个按钮的简单布局。当我去分配属性android:background =" some_color"按钮,整个布局颜色变淡,看起来是白色。删除属性后,背景颜色恢复正常。截图和说明:

将背景颜色添加到按钮之前的代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/clarksonGreen">

    <ImageView
        android:id="@+id/EnterRoomNumberBackgroundImage"
        android:layout_width="437dp"
        android:layout_gravity="center"
        android:layout_height="526dp"
        android:alpha="0.1"
        app:srcCompat="@drawable/knight" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        android:weightSum="1">

        <EditText
            android:id="@+id/EnterRoomNumber"
            android:layout_width="246dp"
            android:background="@drawable/enter_room_number_box"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="55dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:hint="Enter Room #"
            android:textColorHint="#808080"
            android:textAlignment="center"
            android:inputType="number"
            android:layout_weight="0.09" />

        <Button
            android:id="@+id/GoButton"
            android:layout_width="271dp"

            android:layout_height="80dp"
            android:text="Button" />

    </LinearLayout>
</FrameLayout>

Preview before the background color is added to the button.

将背景颜色添加到按钮后的代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/clarksonGreen">

    <ImageView
        android:id="@+id/EnterRoomNumberBackgroundImage"
        android:layout_width="437dp"
        android:layout_gravity="center"
        android:layout_height="526dp"
        android:alpha="0.1"
        app:srcCompat="@drawable/knight" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        android:weightSum="1">

        <EditText
            android:id="@+id/EnterRoomNumber"
            android:layout_width="246dp"
            android:background="@drawable/enter_room_number_box"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="55dp"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:hint="Enter Room #"
            android:textColorHint="#808080"
            android:textAlignment="center"
            android:inputType="number"
            android:layout_weight="0.09" />

        <Button
            android:id="@+id/GoButton"
            android:layout_width="271dp"
            android:background="@color/clarksonGreen"
            android:layout_height="80dp"
            android:text="Button" />

    </LinearLayout>
</FrameLayout>

Preview after background color is added to button.

任何想法如何解决这个奇怪的错误?

2 个答案:

答案 0 :(得分:0)

可能是你没有分配颜色变量&#34; clarksonGreen&#34;在资源文件颜色?如果是,您应该转到颜色变量并输入颜色名称(&#34; clarksonGreen&#34;)并指定颜色(例如:#e55656)。

答案 1 :(得分:0)

首先,我无法重现这个问题。假设你的颜色文件中有颜色,我没有看错。

您可以尝试重建项目,将颜色应用于ImageView,更新AndroidStudio或在模拟器上启动它以查看它是否也在那里。

如果它不起作用,请将整个代码上传到GitHub,以便我可以更仔细地查看。