我在使用与文本开头对齐的按钮创建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所示,按钮以及标题和副标题的开头应排成一行:
我哪里错了?
答案 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;