2016-10-30 3 views
1

Я работаю над линейной компоновкой для моего простого приложения для Android. Я хочу, чтобы часть двух представлений динамически менялась в зависимости от размера (Я хочу иметь, для строки слева направо первые 20% пустые, а весь контент находится в остальной части 80%). Для этого подхода я выбрал вес для другого вида. Я создал вложенный линейный макет для этого подхода. Например, иерархия компоновки выглядит примерно так.LinearLayout с процентом пустое пространство

<linearLayout> //parent layout 
    <linearLayout //child 1 layout 
     android:layout_weight="1"> 
     //so that this view occupy 20% of the space regardless the width of device. I intensionally wanna keep this view empty. 
    </linearLayout> 
    <linearLayout //child 2 layout 
     android:layout_weight="4"> 
      //so that this view occupy 80% of the space regardless the width of device. and 
      //inside this view I have whatever view I wanna add on it. 
     <EditText> 
     <ImageView> 
    </linearLayout> 
</linearLayout> 

При таком подходе Lint в Android Studio сказать мне следующие предупреждения:

  1. Это Уплотненный Layout. Макеты компоновки требуют, чтобы виджет измерялся дважды. Когда LinearLayout с ненулевыми весами вложен внутри другого LinearLayout с ненулевыми весами, число измерений увеличивается экспоненциально.

  2. ребенок 1 макет бесполезно: Это LinearLayout вид бесполезно (без детей, ни background, ни id, не style)

Может кто-нибудь адрес мне правильный макет для использования в целях для динамического изменения макета в зависимости от размера устройства? Как правильно настроить пустое пространство для случая с линейным макетом?

ответ

2

Это возможное решение с использованием весов:

<LinearLayout 
    android:layout_width="match_parent" 
    android:gravity="end" 
    android:weightSum="1"> 

    <!-- Your content here: --> 
    <View 
     android:layout_width="0dp" 
     android:layout_weight="0.8" 
     android:layout_gravity="end" /> 

</LinearLayout> 
+0

Это именно то, что я ищу. Благодарю. –

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