2016-10-10 2 views
2

У меня есть контейнер RelativeLayout, который не доходит до нижней части экрана и не доходит до левой стороны экрана (в конце RealtiveLayout есть крошечная белая линия) ..RelativeLayout не выполняет «match_parent» и alignBottom

enter image description here

Вот файл макета .xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_marginStart="-17dp" 
    android:layout_marginLeft="0dp" 
    android:layout_marginEnd="-16dp" 
    android:layout_marginRight="0dp" 
    android:layout_marginBottom="-17dp" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="#f2f2f2" 
    android:orientation="vertical" 
    tools:context=".ListMessageScreen"> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_weight="2.0" 
     android:layout_width="match_parent" 
     android:layout_height="0dp"> 

     <ListView 
      android:id="@+id/list_messages" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:scrollbarStyle="outsideOverlay" 
      android:layout_marginEnd="2dp" 
      android:layout_marginRight="0dp" /> 

    </LinearLayout> 


    <RelativeLayout 
     android:id="@+id/my_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_marginEnd="0dp" 
     android:layout_marginRight="0dp" 
     android:layout_marginStart="-16dp" 
     android:layout_marginLeft="0dp"> 

     <TextView 
      android:layout_height="match_parent" 
      android:layout_width="200dp" 
      android:background="#ff1a1a" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentLeft="true" 
      android:clickable="true" 
      android:gravity="center" 
      android:text="@string/messages_screen_left_button" 
      android:textAllCaps="false" 
      android:textColor="#ffffff" 
      android:textSize="18sp"> 
     </TextView> 

     <TextView 
      android:layout_height="match_parent" 
      android:layout_width="200dp" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:background="#ff1a1a" 
      android:clickable="true" 
      android:gravity="center" 
      android:text="@string/messages_screen_right_button" 
      android:textAllCaps="false" 
      android:textColor="#ffffff" 
      android:textSize="18sp"> 
     </TextView> 

    </RelativeLayout> 

</LinearLayout> 

кто-нибудь есть какие-либо идеи о том, почему это происходит? Я пробовал так много вариантов до сих пор. Самое близкое, что я пришел, добавлял «android: layout_marginBottom =» - 17dp «» к корневому LinearLayout, но даже жестко я это сделал, у меня все еще есть проблема с match_parent RelativeLayout ..

Я немного потерян. Может, кто-нибудь мне поможет, пожалуйста? Спасибо заранее, SO сообщество!

+1

Вы указали дополнение в аутсорсинге 'LinearLayout'. «RelativeLayout» находится внутри этого, поэтому отступы будут использоваться между «RelativeLayout» и экраном. Кроме того, у вашего внешнего 'LinearLayout' есть' android: layout_width = "wrap_content" ', но вы, вероятно, должны использовать' android: layout_width = "match_parent", чтобы он занимал всю ширину экрана. –

+1

Это было так очевидно .. прокладка, о которой вы говорили, вызывала у меня массу проблем. Я сделал тест здесь, и я просто настроил «layout_marginEnd» на «-17dp», и он сработал. Это также имеет смысл в отношении макета, но факт заключается в том, что параметр «match_parent» для внешнего LinearLayout не занимал весь экран, даже жестко я использую «match_parent» для RelativeLayout .. Действительно, прокладка для корня LinearLayout, была моей головной болью. Спасибо :)! – codermx

+0

Прохладный! Добавлено это как ответ. –

ответ

1

Вы указали заполнение в аутсорсинге LinearLayout. RelativeLayout находится внутри этого, поэтому отступы будут использоваться между RelativeLayout и экраном. Кроме того, ваш внешний LinearLayout имеет android:layout_width="wrap_content", но вы, вероятно, должны использовать android:layout_width="match_parent" так, чтобы он занимал всю ширину экрана.

+1

Что касается вашего ответа, отступы от внешнего LinearLayout меня убивали ... Спасибо :)! – codermx

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