0

У меня есть relativelayout внутри другого relativelayout, который имеет 4 кнопки внутри. Я хочу, чтобы выровнять внутреннюю RelativeLayout слева от родительского RelativeLayout, но он не выровнен полностью, есть пустое пространство между левой внутренней точки зрения с левой стороны родительского вида, вот XML:RelativeLayout внутри 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: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

удалите андроид: paddingLeft = "@ dimen/activity_horizontal_margin" из родительского Относительная компоновка. –

ответ

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" вот почему он не полностью налево Вытащите эта строка, и вы получите свое решение, которое вы можете скопировать в мой код выше:

2

На родителях имеется отступы RelativeLayout.

Удалить следующую строку:

android:paddingLeft="@dimen/activity_horizontal_margin" 
+0

да, это исправляет проблему, но Android - это все, для чего было быстрее :) все равно upvote. спасибо в любом случае –

+0

@arashmoeen На самом деле я разместил его первым. Но все равно спасибо. –

+0

@MiroMarkarian брата возьмите одну возвышенность от меня :) и вы отправили ее –

-1

Швы мне из-за обивки, которые установлены в корне RelativeLayo ет.

<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" > 
2
android:paddingLeft="@dimen/activity_horizontal_margin" 

Это из-за размеров. Вы do not need to remove these Lines

Но перейдите в папку res> Значения> dimen.xml. Здесь По умолчанию Определено Некоторое распределение пространства для activity_horizontal_margin измените его на 0dp.

Если вы удалите эту строку Это хорошо, но вы столкнетесь с этой проблемой в каждом XML-файле, который вы собираетесь создать. Поэтому я думаю, что это решение лучше.

Смежные вопросы