1

我正在使用LinearLayout垂直方向,并且在该布局内我有四个ListView. 这个布局我已经放在里面了ScrollView

我的问题是ScrollView不滚动。所以我无法看到我的所有列表视图。

我正在做的是:

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView1"
android:layout_width="wrap_content"
android:layout_height="600dp"
android:fillViewport="true" >




             <LinearLayout
                 android:id="@+id/frag_capt2"
                 android:layout_width="800dp"
                 android:layout_height="match_parent"
                 android:layout_marginLeft="100dp"
                 android:layout_marginTop="20dp"
                 android:orientation="vertical" >

                 <TextView
                     android:id="@+id/linearlayoutteamtv1"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="Medium Text"
                     android:textAppearance="?android:attr/textAppearanceMedium"
                     android:textColor="#000000" />


                 <ListView
                     android:id="@+id/ListView01team"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
                     android:background="@drawable/pm_cool_listproject_background" >

                 </ListView>



                 <TextView
                     android:id="@+id/linearlayoutteamtv2"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
                     android:text="Medium Text"
                     android:textAppearance="?android:attr/textAppearanceMedium"
                     android:textColor="#000000" />



                 <ListView
                     android:id="@+id/ListView02team"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
                     android:background="@drawable/pm_cool_listproject_background" >

                 </ListView>

                  <TextView
                     android:id="@+id/linearlayoutteamtv3"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
                     android:text="Medium Text"
                     android:textAppearance="?android:attr/textAppearanceMedium"
                     android:textColor="#000000" />



                 <ListView
                     android:id="@+id/ListView03team"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
                     android:background="@drawable/pm_cool_listproject_background" >

                 </ListView>



                  <TextView
                     android:id="@+id/linearlayoutteamtv4"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
                     android:text="Medium Text"
                     android:textAppearance="?android:attr/textAppearanceMedium"
                     android:textColor="#000000" />



                 <ListView
                     android:id="@+id/ListView04team"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="10dp"
                     android:background="@drawable/pm_cool_listproject_background" >

                 </ListView>


             </LinearLayout>
</ScrollView>

我不明白我的代码缺少什么。

4

5 回答 5

1

Alistview应该在任何滚动元素内,反之亦然。请看看谷歌开发人员对此有何评论。请查看此视频

于 2012-12-03T10:56:06.653 回答
1

你可以设置所有四个列表视图的高度......就像......

 <ListView
            android:id="@+id/lst_tree_hazard"
            android:layout_width="fill_parent"
            android:layout_height="80dp"       ///set the height based on your listview content
            android:scrollbars="none" >
 </ListView>
于 2012-12-03T11:47:17.147 回答
0

你不需要一个ScrollViewfor a ListView。我认为您可以轻松使用RelativeLayout并指定ListViews

于 2012-12-03T10:54:33.693 回答
0

通常,您不能将可滚动的东西放在其他可滚动的东西中,它们在同一方向滚动,并且结果可靠。有时这有效(例如,WebViews在 a 中ViewPager),但这是例外,而不是常态。

任何一个:

移出ListView,ScrollView

将 ScrollView 的所有其余内容移动到 ListView 中,无论是使用诸如addHeaderView()MergeAdapter之类的东西

于 2012-12-03T11:00:35.013 回答
0

你不能那样做!但是,您的问题有解决方案,单个列表中的多种类型的列表项。单一类型列表项的区别:

  • 定义列表项类型,即。(header, list1_type, list2_type,... main_header?, main_footer?), 覆盖getViewTypeCount()
  • 覆盖getItemViewType(...)
    • is index_of_header -> 0
    • is index_of_type1 -> 1
    • is index_of_type2 -> 2
  • 更复杂getView(...)
    • 获取项目视图类型,提示:使用已经创建的函数
    • 根据类型调度视图创建,不要忘记,该convertView参数是当前项目类型的视图,如果不为空,您应该重用它

如另一个答案中所述,您可以创建自己的抽象类来合并适配器。这基本上就是我上面解释的。有时你就是不能使用合并适配器,即。递归结构,但考虑使用ExpandableListView.

于 2015-04-17T08:13:30.687 回答