CardView按钮和文本没有对齐

时间:2015-07-21 08:06:06

标签: android material-design

我在使用与文本开头对齐的按钮创建CardView时遇到问题:

Screenshot of CardView with issue

我正在遵循材质设计规范中为填充和文字大小设置的尺寸。这是我正在使用的XML:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="16dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:paddingTop="24dp"
            android:text="Title goes here"
            android:textColor="@color/primary_text_default_material_light"
            android:textSize="24sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="16dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:text="Subtitle here"
            android:textSize="14sp" />

        <Button
            style="@style/Base.Widget.AppCompat.Button.Borderless.Colored"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:padding="0dp"
            android:text="Action 1"
            android:textColor="@color/accent_material_light" />
    </LinearLayout>
</android.support.v7.widget.CardView>

从视觉上看,文本开头和无边框按钮文字之间存在差距。

enter image description here

Material Design spec所示,按钮以及标题和副标题的开头应排成一行:

Material design cardview showing aligned text and button

我哪里错了?

3 个答案:

答案 0 :(得分:3)

你应该删除android:layout_margin和android:padding属性,并用android:paddingLeft =“8dp”替换,如下所示。你还应该考虑使用android:paddingStart来更好地支持从右到左的布局,并使用android:paddingRight和android:paddingEnd来更好地支持从右到左的对称性。

    <Button
        style="@style/Base.Widget.AppCompat.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="8dp"
        android:text="Action 1"
        android:textColor="@color/accent_material_light" />

答案 1 :(得分:1)

您需要设置按钮的重力

android:gravity="start|center_vertical"

答案 2 :(得分:0)

试   机器人:paddingLeft =&#34; 0dp&#34;