我的问题是,所有这些视图都有不同的左边填充,当我将它们放在另一个下面时,它看起来很混乱。
我该如何解决?有没有很酷的方法来解决这个问题?
我试图添加一些额外的填充,例如2dp用于edittexts,4dp用于textview,但由于不同设备上的填充不同,它似乎不起作用。
示例(在Googles官方应用程序中并非如此): 这里没有什么特别的布局,只是没有任何附加属性的视图。
<?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="wrap_content"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="0dip">
<EditText
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/network_password"
android:inputType="textPassword"/>
</android.support.design.widget.TextInputLayout>
<CheckBox
android:id="@+id/checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_password"/>
</LinearLayout>
答案 0 :(得分:4)
没有很酷的方法可以做到这一点。以下策略最适合我:
android:clipChildren="false"
或android:clipToPadding="false"
答案 1 :(得分:1)
您应该在包含表单的布局中添加一个填充,而不是为每个视图添加填充。这样,所有视图都将正确对齐。
<LinearLayout
...
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:paddingBottom="16dp">
<!--Your form inputs-->
</LinearLayout>
新创建的活动在根布局周围已经有16dp的填充。
值'16dp'应该保存为 dimen ,而不是硬编码。
答案 2 :(得分:0)
我建议以这种方式管理保证金和填充:
/res/
下创建多个values
文件夹,具体取决于屏幕密度(例如values-w820dp
),然后在这些文件夹下创建dimens.xml
,并为每个屏幕密度设置正确的值。 follow this guide。RelativeLayout
等属性来管理路线。