2015-05-11 5 views
3

У меня есть 9-patch drawable (date_time). И я хочу разместить этот ресурс по сравнению с содержимым Relative Layout, поэтому все дочерние представления должны быть нарисованы поверх этого изображения. Вот XML Layout:RelativeLayout background drawable overlap content

<RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="23dp" 
      android:layout_below="@id/tv_map_address" 
      android:layout_marginTop="11dp" 
      android:layout_marginBottom="12dp" 
      android:background="@drawable/date_time"> 

      <ImageView 
       android:id="@+id/iv_map_distance" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:layout_centerVertical="true" 
       android:src="@drawable/ic_map_distance"/> 

      <TextView 
       android:id="@+id/tv_map_distance" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:layout_toRightOf="@id/iv_map_distance" 
       android:layout_centerVertical="true" 
       android:textColor="@color/white" 
       android:textSize="11sp" 
       android:text="2,7 км" 
       fontPath="fonts/Roboto-Medium.ttf"/> 

      <ImageView 
       android:id="@+id/iv_map_path" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:layout_toRightOf="@id/tv_map_distance" 
       android:layout_centerVertical="true" 
       android:src="@drawable/ic_map_path"/> 

      <TextView 
       android:id="@+id/tv_map_path" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:layout_toRightOf="@id/iv_map_path" 
       android:layout_centerVertical="true" 
       android:textColor="@color/white" 
       android:textSize="11sp" 
       android:text="3,2 км" 
       fontPath="fonts/Roboto-Medium.ttf"/> 

     </RelativeLayout> 

Но почему-то этот фон накладывается все содержание ребенка. Здесь показано, что происходит.

Overlapping content

Но если я заменить

android:background="@drawable/date_time" 

в

android:background="#0000FF" 

Все хорошо, и выход в следующем:

enter image description here

Можете ли вы объяснить мне, что я делаю неправильно?

Обновление: Вот мой 9-патч.

enter image description here

+0

Опубликуйте свои 9-патч, доступные индикаторы контента, вероятно, неверные. –

+0

@blipinsk Я добавил drawable. Также я могу загрузить его на какой-то образ, если вам это нужно для тестов. – Anatol

ответ

3

Точно так, как я думал, что ваши показатели содержания неверны (если вы не хотите вводить такой контент отступы с 9-патч). Попробуйте вместо этого:

9-patch

правой и нижней направляющих, определить, какая часть (или сколько) вашего drawable должны быть заняты содержанием. Вы установили эту область на действительно небольшое пространство и установили фиксированную высоту вашего Layout. Другими словами: 9-патч заставил вашего Layout позволить своим детям заняться лишь небольшим районом вашего вида (который был ограничен вами, не позволяя вашему Layout растянуть).

+0

Да. Вы были совершенно правы. Наконец, я понимаю, как эта 9-патч-магия действительно работает. Благодарю. – Anatol

+0

Удивительный, рад, что я мог бы помочь :) –