2017-01-17 2 views
2

Это. Я не могу понять, почему первый макет выглядит больше, чем второй макет, если последний имеет .6 (60%).layout_weight = ". 4" выглядит больше, чем layout_weight = ". 6"

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="horizontal" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight=".4" > 

    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight=".6"> 
    </RelativeLayout> 
</LinearLayout> 
+1

Его рабочий реверс, .4 больше, чем 0,6. –

ответ

1

@Miguel Барра относится к этому

android:layout_width="match_parent" 

заменить на

android:layout_width="wrap_content" 

или

android:layout_width="0dp" 

в вашем как Relative расположение

0

Честно говоря, я не пробовал с дробными значениями веса, но теоретически они должны работать. Но проблема здесь, я думаю, в том, что вам нужно установить layout_width как для Relativelayouts, так и для 0dp. Только тогда весовой параметр вступит в силу. Попробуйте. От андроид Docs -

Чтобы создать линейную компоновку, в которой каждый ребенок использует такое же количество пространства на экране, установи андроид: layout_height каждой цели «0dp» (для вертикального расположения) или андроид: layout_width каждого вида - «0dp» (для горизонтальной компоновки). Затем установите для android: layout_weight каждого вида «1».

0

У вас должно быть это.

Есть два случая, если вы используете вес

случай 1: если у вас есть горизонтальный родитель. вы должны иметь layout_width = "0dp"

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="horizontal" android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <RelativeLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight=".6" > 

     </RelativeLayout> 

     <RelativeLayout 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight=".4"> 
     </RelativeLayout> 
    </LinearLayout> 

case 1: если у вас есть вертикальный родитель. вы должны иметь layout_height = "0dp"

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="1"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight=".6" > 

    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight=".4"> 
    </RelativeLayout> 
</LinearLayout> 
0

Набор layout_height = "0dp" в LinearLayout (родительское представление)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="horizontal" android:layout_width="match_parent" 
layout_height = "0dp" > 

<RelativeLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight=".6" > 

</RelativeLayout> 

<RelativeLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight=".4"> 
</RelativeLayout> 
</LinearLayout> 

anotherway это добавить childview значение суммарного веса (0,6 + 0,4 = 1)

android:weightSum="1" 

LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="horizontal" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:weightSum="1" > 
Смежные вопросы