【发布时间】:2016-05-12 15:12:41
【问题描述】:
我无法将默认材质按钮与 UI 的其他元素对齐。事实上,我已经查看了 Android 源代码,并且按钮的背景包含能够绘制阴影并在单击时处理按钮高度的插图:
<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="@android:color/white" />
<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>
</inset>
所以,我有以下非常基本的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
>
<View
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#123456"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test button alignment"
/>
<View
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#123456"
/>
</LinearLayout>
如您所见,按钮的左边缘未与其他视图的左边缘对齐。
所以我的问题是,有没有办法在不丢失默认 Android 按钮开箱即用处理的阴影/高程的情况下摆脱这些插图,以使 UI 对齐良好?
谢谢!
【问题讨论】:
-
这应该可以使用optical layout bounds 来实现,但我很难让它专门用于材质按钮。
标签: android button material-design