我在另一个relativelayout里面有一个relativelayout,里面有4个按钮。我想将内部relativelayout与父relativelayout的左边对齐但是它没有完全对齐,内部视图的左边和父视图的左边之间有一个空的空格,这里是xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="raw4.kaw.mp2.MainActivity"
android:background="@color/background_all" >
<RelativeLayout
android:id="@+id/main_btn_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btn_main_news"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="@string/btn_news_text"
android:layout_marginTop="10dp"
android:layout_alignParentTop="true"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_products"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="@string/btn_products_text"
android:layout_below="@id/btn_main_news"
android:layout_marginTop="10dp"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_aboutus"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="@string/btn_aboutus_text"
android:layout_below="@id/btn_main_products"
android:layout_marginTop="10dp"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_contactus"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="@string/btn_contactus_text"
android:layout_below="@id/btn_main_aboutus"
android:layout_marginTop="10dp"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
</RelativeLayout>
这是MainActivity.java中的代码,通过添加对齐规则将内部布局宽度减少到80%:
DisplayMetrics metrics = this.getResources().getDisplayMetrics();
int dpi = metrics.widthPixels;
int dpiPerc = (int)(dpi * 0.8);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
dpiPerc,
RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
RelativeLayout main_rl_container = (RelativeLayout)findViewById(R.id.main_btn_container);
main_rl_container.setLayoutParams(params);
但这是结果:
http://i57.tinypic.com/2l7rpy.png
正如您所看到的那样,内部布局的左侧存在间隙。谢谢你的帮助。
答案 0 :(得分:3)
复制粘贴此代码它将解决您的问题
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="raw4.kaw.mp2.MainActivity"
android:background="@color/background_all" >
<RelativeLayout
android:id="@+id/main_btn_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btn_main_news"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="@string/btn_news_text"
android:layout_marginTop="10dp"
android:layout_alignParentTop="true"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_products"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="@string/btn_products_text"
android:layout_below="@id/btn_main_news"
android:layout_marginTop="10dp"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_aboutus"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="@string/btn_aboutus_text"
android:layout_below="@id/btn_main_products"
android:layout_marginTop="10dp"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
<Button
android:id="@+id/btn_main_contactus"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:text="@string/btn_contactus_text"
android:layout_below="@id/btn_main_aboutus"
android:layout_marginTop="10dp"
android:background="@color/background_btn"
android:textColor="@color/text_color_btn" />
</RelativeLayout>
您的问题是您的父布局使用android:paddingLeft="@dimen/activity_horizontal_margin"
这就是为什么它不完全要删除此行,您将获得解决方案,您可以复制粘贴我的上述代码:)
答案 1 :(得分:2)
父RelativeLayout
上有填充。
删除以下行:
android:paddingLeft="@dimen/activity_horizontal_margin"
答案 2 :(得分:2)
android:paddingLeft="@dimen/activity_horizontal_margin"
因为尺寸。
你do not need to remove these Lines
但转到res文件夹&gt;值&gt; dimen.xml。
默认情况下,activity_horizontal_margin
指定的某些空间分配将其更改为0dp
。
如果你删除了那条好的但是,你将在你要创建的每个XML文件中遇到这些问题。所以我认为这个解决方案更好。
答案 3 :(得分:-1)
由于在根RelativeLayout中设置的填充,因此接缝给我。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="raw4.kaw.mp2.MainActivity"
android:background="@color/background_all" >