2012-10-21 45 views
-1

我有這個佈局文件作爲我的主要活動的佈局。當我沒有線性佈局和中間的兩個textview時,列表視圖起作用。但是,當我把它們放在文件中時,視圖不會顯示listview內容。任何人都可以告訴問題是什麼?這個佈局爲什麼不起作用? android

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

     <LinearLayout  
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal"> 
     <TextView 
      android:id="@+id/today_header" 
      android:layout_width="fill_parent" 
      android:layout_weight="2" 
      android:layout_height="70dip" 
      android:textColor="#dc6800" 
      android:textSize = "20sp" 
      android:paddingTop="12dip" 
      android:paddingLeft="10dip" 

      > 
     </TextView> 
     <TextView 
      android:id="@+id/today_total" 
      android:layout_width="fill_parent" 
      android:layout_weight="3" 
      android:layout_height="70dip" 
      android:textSize = "6sp" 
      android:textColor="#4A4A4A" 
      android:paddingTop="20dip" 
      android:paddingRight="25dip" 
      android:textStyle="bold" 
      /> 

    </LinearLayout> 
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 
+0

只是別的東西要記住,列表視圖的佈局高度「不能」,被設置爲wrap_content,因爲它沒有任何孩子的意見,但(Android將測量第3次時,可以確定一個尺寸)。相反,將其設置爲諸如0dip之類的值,Android將負責調整它的大小。 – Phix

+0

感謝您的提示!我很新的android編程:P – Blake

回答

1

這是因爲LinearLayout中設置爲android:layout_height="fill_parent" 因爲你設置的權重,以他們TextViews,以及他們採取了整個screeen,所以TextViews的實際工作高度不會得到應用。

將其更改爲:

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

     <LinearLayout  
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 
     <TextView 
      android:id="@+id/today_header" 
      android:layout_width="fill_parent" 
      android:layout_weight="2" 
      android:layout_height="70dip" 
      android:textColor="#dc6800" 
      android:textSize = "20sp" 
      android:paddingTop="12dip" 
      android:paddingLeft="10dip" 

      > 
     </TextView> 
     <TextView 
      android:id="@+id/today_total" 
      android:layout_width="fill_parent" 
      android:layout_weight="3" 
      android:layout_height="70dip" 
      android:textSize = "6sp" 
      android:textColor="#4A4A4A" 
      android:paddingTop="20dip" 
      android:paddingRight="25dip" 
      android:textStyle="bold" 
      /> 

    </LinearLayout> 
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 
+0

謝謝!我設置第二個線性佈局是水平的,我不認爲這兩個textview會填滿高度。 – Blake

+0

嗯..我再次嘗試,你是對的textview。但如果我不設置layout_weight,第二個textview不會顯示。 – Blake

+0

保持佈局原樣,只需將子LinearLayout的高度更改爲'android:layout_height =「wrap_content」',我更新了我的答案 – Ahmad

0

這會給您的每一個元素屏幕高度的1/3。使用Layout_weight的值來改變每個元素佔用的screen_height的數量。

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


    <TextView 
     android:id="@+id/today_header" 
     android:layout_width="fill_parent" 
     android:layout_weight="3" 
     android:layout_height="0dip" 
     android:textColor="#dc6800" 
     android:textSize = "20sp" 
     android:paddingTop="12dip" 
     android:paddingLeft="10dip" 

     > 
    </TextView> 
    <TextView 
     android:id="@+id/today_total" 
     android:layout_width="fill_parent" 
     android:layout_weight="3" 
     android:layout_height="0dip" 
     android:textSize = "6sp" 
     android:textColor="#4A4A4A" 
     android:paddingTop="20dip" 
     android:paddingRight="25dip" 
     android:textStyle="bold" 
     /> 


<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="3"/> 

</LinearLayout>