2012-12-06 52 views
0

有一個佈局如下。兩個listView和它們的圖片和文本標題。底部有按鈕。我的問題是,如果第一個listview是高度,其他listview和按鈕不會出現。我想做一個包含標題和ListView的滾動視圖,但沒有奏效。 我該怎麼辦? 感謝如何在佈局中使用兩個listview?

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:src="@drawable/icon" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:gravity="center" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textStyle="bold" 
      android:layout_marginLeft="5dp" 
      android:text="@string/Dep" 
      android:textColor="@color/white" /> 

    </LinearLayout> 
</LinearLayout> 

<ListView 
    android:id="@+id/listView1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
</ListView> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/Orange" 
    android:gravity="center" 
    > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dp" 
     android:src="@drawable/icon2" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:gravity="center" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textStyle="bold" 
      android:textSize="18sp" 
      android:layout_marginLeft="5dp" 
      android:textColor="@color/white" /> 
    </LinearLayout> 
</LinearLayout> 

<ListView 
    android:id="@+id/listView2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
</ListView> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="center" 
    android:layout_margin="10dp" > 

    <Button 
     android:id="@+id/btn1" 
     android:layout_width="0dp" 
     android:layout_height="55dp" 
     android:layout_margin="5dp" 
     android:layout_weight=".3" 
     android:gravity="bottom|center_horizontal" 
     android:textSize="16sp" 
     android:textStyle="bold" /> 

    <Button 
     android:id="@+id/btn2" 
     android:layout_width="0dp" 
     android:layout_height="55dp" 
     android:layout_margin="5dp" 
     android:layout_weight=".7" 
     android:text="@string/Continue" 
     android:textColor="@color/white" 
     android:textSize="24sp" 
     android:textStyle="bold" /> 
</LinearLayout> 
+0

@realuser同樣在你的其他問題;至少給有用的答案一些意見,以便其他人可以從中受益。 –

回答

0

我解決我的問題如下做出更花哨和涼爽的列表視圖:

我用這個代碼在我的活動列表視圖:

HelperScrollView.getListViewSize(listview); 

這是類:

public class HelperScrollView 
{ 
public static void getListViewSize(ListView myListView) { 
    ListAdapter myListAdapter = myListView.getAdapter(); 
    if (myListAdapter == null) { 
     //do nothing return null 
     return; 
    } 
    //set listAdapter in loop for getting final size 
    int totalHeight = 0; 
    for (int size = 0; size < myListAdapter.getCount(); size++) { 
     View listItem = myListAdapter.getView(size, null, myListView); 
     listItem.measure(0, 0); 
     totalHeight += listItem.getMeasuredHeight(); 
    } 
    //setting listview item in adapter 
    ViewGroup.LayoutParams params = myListView.getLayoutParams(); 
    params.height = totalHeight + (myListView.getDividerHeight() * (myListAdapter.getCount())); 
    myListView.setLayoutParams(params); 

} 

}

你可以在你的佈局中使用listview進入滾動視圖。

2

的ListView在Android的滾動視圖,如果要包括兩個列表視圖,單個屏幕上,您可以通過固定的這些觀點父母的高度做。例如,在下面的代碼中,我已經修復了包含listview的linearlayouts的高度,您可以根據屏幕高度使用weight來排列所有視圖。

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="5dp" 
      android:src="@drawable/icon" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:gravity="center" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textStyle="bold" 
       android:layout_marginLeft="5dp" 
       android:text="@string/Dep" 
       android:textColor="@color/white" /> 

     </LinearLayout> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="100dip" 
     > 
    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
    </ListView> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/Orange" 
     android:gravity="center" 
     > 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="5dp" 
      android:src="@drawable/icon2" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:gravity="center" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textStyle="bold" 
       android:textSize="18sp" 
       android:layout_marginLeft="5dp" 
       android:textColor="@color/white" /> 
     </LinearLayout> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="100dip" 
     > 
    <ListView 
     android:id="@+id/listView2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
    </ListView> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:gravity="center" 
     android:layout_margin="10dp" > 

     <Button 
      android:id="@+id/btn1" 
      android:layout_width="0dp" 
      android:layout_height="55dp" 
      android:layout_margin="5dp" 
      android:layout_weight=".3" 
      android:gravity="bottom|center_horizontal" 
      android:textSize="16sp" 
      android:textStyle="bold" /> 

     <Button 
      android:id="@+id/btn2" 
      android:layout_width="0dp" 
      android:layout_height="55dp" 
      android:layout_margin="5dp" 
      android:layout_weight=".7" 
      android:text="@string/Continue" 
      android:textColor="@color/white" 
      android:textSize="24sp" 
      android:textStyle="bold" /> 
    </LinearLayout 

> 
0

通過這種方式,您可以使用兩個列表視圖...

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" > 

    <ListView 
     android:id="@+id/lst_payment" 
     android:layout_width="fill_parent" 
     android:layout_height="100dp" 
     android:layout_alignParentLeft="true" 
     android:layout_marginTop="5dp" 
     android:scrollbars="none" > 

    </ListView> 

    <ListView 
     android:id="@+id/lst_bank" 
     android:layout_width="fill_parent" 
     android:layout_height="100dp" 
     android:layout_below="@+id/lst_payment" 
     android:layout_marginTop="5dp" 
     android:fadingEdge="none" 
     android:scrollbars="none" > 
    </ListView> 
</RelativeLayout 
+0

我認爲給定高度是一個壞主意,因爲它不會看起來不同的屏幕尺寸和分辨率好,而不是那個重量應該使用 –

+0

,因爲你想得到兩個listview的點擊......這就是爲什麼我設置固定高度 –

+0

你是對的@爲什麼和如何。雖然屏幕很大,但是listview已經滾動了。這不好看。另一個解決方案必須是 – realuser

0

原因第二列表視圖中未出現的是,你沒有設置你的線性佈局的方向。將其方向設置爲將出現的垂直方向。

0

我不知道爲什麼你需要兩個listviews在一個活動,但上面的代碼可以幫助只有當你不指定listview高度。我相信你可以使用MergeAdpter take a look here

相關問題