2013-05-13 77 views
4

我有一个复杂的XML文件,我真的需要一个ScrollView。请不要介意Ids,因为我已经改变了它们。 ScrollView在这里不起作用。ScrollView中的多个ListViews

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 

     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:fillViewport="true"> 


<LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@+id/f_summary_LL"> 


<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/black"> 


    <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" android:layout_weight="1"> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/BT1" 
       android:textColor="@color/white" 
       android:textStyle="bold"   
       android:gravity="center_vertical|left" 
       android:paddingLeft="2dp" 
       android:textSize="13sp"/> 

     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/BTS1" 
       android:textColor="@color/white"  
       android:paddingLeft="4dp" 
       android:textSize="13sp"/> 
    </LinearLayout> 

    <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center_vertical|right" 
      android:layout_weight="1"> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textView7" 
       android:textSize="13sp" 
       android:textColor="@color/white" 
       android:textStyle="bold" /> 
     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/BT1CRR" android:textColor="@color/white" 
       android:paddingRight="8dp" android:textSize="13sp" 
       android:paddingLeft="2dp"/> 
    </LinearLayout> 


</LinearLayout> 

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 


    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="" 
      android:id="@+id/textView" android:textColor="@color/white" 
      android:layout_weight="3" android:gravity="center" 
      android:background="@drawable/table_header_cell_first" 
      android:textStyle="bold" 
      android:textSize="13sp"/> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="R" 
      android:id="@+id/textView1" android:textColor="@color/white" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textSize="13sp" android:textStyle="bold" android:layout_weight="1" 
      /> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="B" 
      android:id="@+id/textView2" android:textColor="@color/white" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textStyle="bold" android:textSize="13sp" 
      android:layout_weight="1"/> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="4s" 
      android:id="@+id/textView3" android:textColor="@color/white" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textSize="13sp" android:textStyle="bold" 
      android:layout_weight="1"/> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="6s" 
      android:id="@+id/textView4" android:textColor="@color/white" 
      android:layout_weight="1" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textSize="13sp" android:textStyle="bold"/> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="SR" 
      android:id="@+id/textView5" android:textColor="@color/white" 
      android:layout_weight="1" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textSize="13sp" android:textStyle="bold"/> 

</LinearLayout> 


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




<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/black" 
     android:baselineAligned="false"> 


    <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" android:layout_weight="1" 
      android:baselineAligned="false"> 

     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/BT2" android:textStyle="bold" 
       android:textColor="@color/white" 
       android:gravity="center_vertical|left" android:paddingLeft="2dp" 
       android:textSize="13sp"/> 

     <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/BTS2" android:textSize="13sp" 
       android:textColor="@color/white" 
       android:paddingLeft="4dp"/> 
    </LinearLayout> 


</LinearLayout> 

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="" 
      android:id="@+id/textViewBH" android:textColor="@color/white" 
      android:layout_weight="3" android:gravity="center" 
      android:background="@drawable/table_header_cell_first" 
      android:textSize="13sp" 
      android:textStyle="bold"/> 

    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="O" 
      android:id="@+id/textViewBOH" android:textColor="@color/white" 
      android:layout_weight="1" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textSize="13sp" android:textStyle="bold" android:clickable="false" 
      /> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="M" 
      android:id="@+id/textViewBMH" android:textColor="@color/white" 
      android:layout_weight="1" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textStyle="bold" android:textSize="13sp"/> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="R" 
      android:id="@+id/textViewBRH" android:textColor="@color/white" 
      android:layout_weight="1" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textSize="13sp" android:textStyle="bold"/> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="W" 
      android:id="@+id/textViewBWH" android:textColor="@color/white" 
      android:layout_weight="1" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textSize="13sp" android:textStyle="bold"/> 
    <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:text="" 
      android:id="@+id/textViewBECOH" android:textColor="@color/white" 
      android:layout_weight="1" 
      android:gravity="center" android:background="@drawable/table_header_cell" 
      android:textSize="13sp" android:textStyle="bold"/> 

</LinearLayout> 


<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

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

</LinearLayout> 


<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:id="@+id/innings2"> 

    <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/black"> 


     <LinearLayout 
       android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" android:layout_weight="1"> 

      <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="" 
        android:id="@+id/BT2" android:textStyle="bold" 
        android:textColor="@color/white" 
        android:gravity="center_vertical|left" android:paddingLeft="2dp" 
        android:textSize="13sp"/> 

      <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="" 
        android:id="@+id/BTS2" android:textSize="13sp" 
        android:textColor="@color/white" 
        android:paddingLeft="4dp"/> 
     </LinearLayout> 

     <LinearLayout 
       android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" android:layout_weight="1" 
       android:gravity="center_vertical|right"> 

      <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="" 
        android:id="@+id/textView7" android:textStyle="bold" 
        android:textColor="@color/white" 
        android:textSize="13sp"/> 
      <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="0.00" 
        android:id="@+id/Bae2C" android:textColor="@color/white" 
        android:paddingLeft="2dp" 
        android:paddingRight="8dp" android:textSize="13sp"/> 
     </LinearLayout> 


    </LinearLayout> 
    <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 


     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textView" android:textColor="@color/white" 
       android:layout_weight="3" android:gravity="center" 
       android:background="@drawable/table_header_cell_first" 
       android:textSize="13sp" 
       android:textStyle="bold"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="R" 
       android:id="@+id/textView9" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textSize="13sp" android:textStyle="bold" 
       android:clickable="false" 
       /> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textView10" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textStyle="bold" android:textSize="13sp"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textView11" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textSize="13sp" android:textStyle="bold"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textView4" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textSize="13sp" android:textStyle="bold"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textView5" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textSize="13sp" android:textStyle="bold"/> 

    </LinearLayout> 


    <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      > 
     <ListView 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:id="@+id/listView3"/> 
    </LinearLayout> 




    <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/black" 
      android:baselineAligned="false"> 


     <LinearLayout 
       android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" android:layout_weight="1" 
       android:baselineAligned="false"> 
      <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="" 
        android:id="@+id/Bw1" android:textStyle="bold" 
        android:textColor="@color/white" 
        android:gravity="center_vertical|left" android:paddingLeft="2dp" 
        android:textSize="13sp"/> 
      <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="" 
        android:id="@+id/BoSe1" android:textSize="13sp" 
        android:textColor="@color/white" 
        android:paddingLeft="4dp"/> 
     </LinearLayout> 


    </LinearLayout> 
    <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 


     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textViewBH" android:textColor="@color/white" 
       android:layout_weight="3" android:gravity="center" 
       android:background="@drawable/table_header_cell_first" 
       android:textSize="13sp" 
       android:textStyle="bold"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textViewBOH" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textSize="13sp" android:textStyle="bold" 
       android:clickable="false" 
       /> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textViewBMH" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textStyle="bold" android:textSize="13sp"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textViewBRH" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textSize="13sp" android:textStyle="bold"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textViewBWsH" android:textColor="@color/white" 
       android:layout_weight="1"    
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textSize="13sp" android:textStyle="bold"/> 
     <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="" 
       android:id="@+id/textViewBECOH" android:textColor="@color/white" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/table_header_cell" 
       android:textSize="13sp" android:textStyle="bold"/> 

    </LinearLayout> 


    <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      > 
     <ListView 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:id="@+id/listView4"/> 
    </LinearLayout> 

</LinearLayout> 


</LinearLayout> 

</ScrollView> 
+0

的Android ListView控件不滚动? http://stackoverflow.com/q/3192595/1012284 – 2013-05-13 06:21:21

+0

用Android的多个ListViews滚动http://stackoverflow.com/q/306626/1012284 – 2013-05-13 06:21:50

+0

你可以看到这篇文章: http://stackoverflow.com/问题/ 16331545/show-multi-listview-in-one-screen/16331649#16331649 – buptcoder 2013-05-13 06:23:05

回答

2

ScrollViewListView都使用滚动。所以我认为他们不应该一起使用。尝试使用RelativeLayout或其他一些布局而不是ScrollView

+0

我知道ScrollView和ListView不应该一起使用,但它的本质是我做的。原因是,如果我不这样做,那么ListViews滚动是活动的而不是完整的视图。 – 2013-05-13 07:10:33

4

使用这样:这个工作般的魅力

删除线性布局。使用相对布局,并在那里放置你的两个列表视图。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scrollojt" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="true"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <ListView 
      android:id="@+id/listView1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#f00"></ListView> 

     <ListView 
      android:id="@+id/listView2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/listView1" 
      android:background="#0f0"></ListView> 
    </RelativeLayout> 
</ScrollView> 

添加Utility.java

public class Utility { 

    public static void setListViewHeightBasedOnChildren(ListView listView) { 
     ListAdapter listAdapter = listView.getAdapter(); 
     if (listAdapter == null) { 
      // pre-condition 
      return; 
     } 

     int totalHeight = 0; 
     int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST); 
     for (int i = 0; i < listAdapter.getCount(); i++) { 
      View listItem = listAdapter.getView(i, null, listView); 
      listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED); 
      totalHeight += listItem.getMeasuredHeight(); 
     } 

     ViewGroup.LayoutParams params = listView.getLayoutParams(); 
     params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
     listView.setLayoutParams(params); 
     listView.requestLayout(); 
    } 
} 

在你的活动:

lv1.setAdapter(adapter); 
lv2.setAdapter(adapter); 

Utility.setListViewHeightBasedOnChildren(lv1); 
Utility.setListViewHeightBasedOnChildren(lv2); 

感谢#Nirmal的实际答案https://stackoverflow.com/a/17693628/1403112