android – CardView按钮和文本不对齐

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

我正在遵循材料设计规范中为填充和文本大小设置的尺寸.这是我正在使用的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>

在视觉上,文本的开头和无边框按钮文本之间存在差距.

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

我哪里错了?

最佳答案
你应该删除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" />

转载注明原文:android – CardView按钮和文本不对齐 - 代码日志