具有完全相同代码的按钮,产生两种不同的样式

时间:2016-04-07 03:54:17

标签: android android-layout listview android-button

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

标题集按钮代码:

{{sentiment}}

而Listview的按钮代码为:

 <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" />

@ ir2pid的Listview的Xml:

<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" />

我在设备上输出的内容:

Image of Whats displayed on device.

我的预期结果是两个按钮组看起来都一样。

2 个答案:

答案 0 :(得分:1)

在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>

按钮添加

android:background="@drawable/round"

答案 1 :(得分:0)

按照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中将backgorund更改为android:background="@drawable/round"