2013-02-24 2 views
1

, когда я узнал фрагмент наЗачем нужно установить layout_width в ZERO?

http://developer.android.com/reference/android/app/Fragment.html

Я видел следующий код макета земли/fragment_layout.xml:

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

    <fragment class="com.example.android.apis.app.FragmentLayout$TitlesFragment" 
      android:id="@+id/titles" android:layout_weight="1" 
      android:layout_width="0px" android:layout_height="match_parent" /> 

    <FrameLayout android:id="@+id/details" android:layout_weight="1" 
      android:layout_width="0px" android:layout_height="match_parent" 
      android:background="?android:attr/detailsElementBackground" /> 

</LinearLayout> 

почему layout_width-х фрагмента и framelayout оба установлены в ноль? ? Я попробовал один и тот же xml на портретной ориентации, установив android:orientation="vertical", и был показан пустой экран. Так в чем секрет? Я имею в виду, какова разница между вертикальной и горизонтальной? Какова особенность этого FrameLayout?

+2

секрет *** android: layout_weight = "1" *** [узнать больше] (http://stackoverflow.com/a/3996104/488434) –

+0

Его a исправить ошибку в некоторых версиях android, где layout wei ght не соблюдается правильно, если ширина - wrap_content или fill_parent. По какой-то причине это позволяет правильно взвешивать два одинаково на весь экран. –

+0

@ AhmadAl-Kayyali Большое спасибо :) Я изменяю xml как 'android: layout_width =" match_parent "android: layout_height =" 0px "' когда вертикаль, это сработало! – Flybywind

ответ

1

вещь, которую вы ищете, - это свойство веса, которое делит ваш LinearLayout на две одинаковые порции.

Секрет андроида: layout_weight = «1»learn more

0

Если LinearLayout вертикальная ориентация, чем каждый элемент с layout_weight атрибута должны установить layout_height до 0

В случае горизонтальной LinearLayout у вас есть чтобы установить layout_width в 0, если у него есть layout_weight