Android 按钮使用完全相同的代码,生成两种不同的样式

Android 按钮使用完全相同的代码,生成两种不同的样式,android,android-layout,listview,android-button,Android,Android Layout,Listview,Android Button,我有两组不同的按钮,一个在活动中,一个在列表视图中。它们的代码非常相似,但显示两种不同的样式 标题按钮集代码: <Button android:id="@+id/invoices_1year" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="0.2" android:onClick="r

我有两组不同的按钮,一个在活动中,一个在列表视图中。它们的代码非常相似,但显示两种不同的样式

标题按钮集代码:

 <Button
        android:id="@+id/invoices_1year"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="0.2"
        android:onClick="refresh"
        android:text="@string/Invoices_1_year" />

而Listview的按钮代码为:

<Button
    android:id="@+id/invoiceButton"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_weight="0.25"
    android:text="View Pdf" />

@ir2pid的Listview的Xml:

<ListView
    android:id="@+id/InvoiceList"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/searchArea" />

我在设备上获得的输出:


我的预期结果是两个按钮集看起来相同

在drawable文件夹中创建round.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" >
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#5e7974" />
            <gradient android:angle="-90" android:startColor="#e4d46f" android:endColor="#e4d079"  />
        </shape>
    </item>
    <item android:state_focused="true">
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#c7cf2d" />
            <solid android:color="#e9da67"/>
        </shape>
    </item>
    <item >
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#e7d851" />
            <gradient android:angle="-90" android:startColor="#e4d079" android:endColor="#87cf8d" />
        </shape>
    </item>
</selector>

在Bala Raja的回答之后,我找到了通用材质设计按钮xml,并将其修改为仅使用我指定的颜色

这是我的round.xml

<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_button_inset_horizontal_material"
android:insetTop="@dimen/abc_button_inset_vertical_material"
android:insetRight="@dimen/abc_button_inset_horizontal_material"
android:insetBottom="@dimen/abc_button_inset_vertical_material">

<shape android:shape="rectangle">

    <corners android:radius="@dimen/abc_control_corner_material" />
    <solid android:color="@color/ButtonGray" /> // My CUSTOM COLOR
    <padding android:left="@dimen/abc_button_padding_horizontal_material"
        android:top="@dimen/abc_button_padding_vertical_material"
        android:right="@dimen/abc_button_padding_horizontal_material"
        android:bottom="@dimen/abc_button_padding_vertical_material" />
</shape>

//我的定制颜色


在buttom xml中,将backgound更改为
android:background=“@drawable/round”

您可能在不知不觉中在列表视图或活动上应用了主题,如果有任何这样的覆盖,也可以尝试在style.xml中查找。您想要相同的颜色吗?是的,我想要相同的颜色。我将把listview的Xml添加到原始文章中。我不认为我正在将主题应用于列表视图。在Android Studio预览布局中的每个列表视图项目中,您是否看到Android Studio预览中的按钮颜色为白色,它们与标题按钮的颜色相同。
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_button_inset_horizontal_material"
android:insetTop="@dimen/abc_button_inset_vertical_material"
android:insetRight="@dimen/abc_button_inset_horizontal_material"
android:insetBottom="@dimen/abc_button_inset_vertical_material">

<shape android:shape="rectangle">

    <corners android:radius="@dimen/abc_control_corner_material" />
    <solid android:color="@color/ButtonGray" /> // My CUSTOM COLOR
    <padding android:left="@dimen/abc_button_padding_horizontal_material"
        android:top="@dimen/abc_button_padding_vertical_material"
        android:right="@dimen/abc_button_padding_horizontal_material"
        android:bottom="@dimen/abc_button_padding_vertical_material" />
</shape>