将ListView子项添加到Horizo​​ntalScrollView

时间:2011-08-14 23:05:49

标签: android listview horizontalscrollview

我有一个Horizo​​ntalScrollView,我正在添加一堆ListView作为其子项。我的XML文件类似于以下内容。为简洁起见,我将省略一些属性。

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

在我的java代码中,然后我使用数据填充ListView。如果只有1或2条记录,则ListView不会一直延伸到屏幕底部。我看到了什么似乎是一个透明的背景。我该如何摆脱这种行为。

我也试过使用http://www.matt-reid.co.uk/blog_post.php?id=62中的这个组件。再次,我有同样的问题。

感谢任何帮助。

下面是XML文件。我只是将控制代码复制/粘贴到我的包中,如demo.fling8.Horizo​​ntalPager。

 <demo.fling8.HorizontalPager 
android:id="@+id/hp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

  <TextView
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:text= "Etiam et dui volutpat purus gravida consequat. Nullam sodales velit a nunc pretium ut tempor urna molestie. Maecenas metus enim, venenatis vel volutpat non, iaculis ut justo. Nulla venenatis malesuada quam at tincidunt. Nunc at sem eros, convallis eleifend arcu. Curabitur gravida velit nec nunc condimentum feugiat. In ultrices orci sit amet purus fermentum placerat in et lacus. Praesent sit amet sodales lectus. Morbi vehicula condimentum purus eu vulputate. Morbi risus enim, rhoncus a iaculis et, porta vitae justo." 
    />
<ListView android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"></ListView>
 </demo.fling8.HorizontalPager>

在我的MainActivity.java类中,这是我填充ListView的代码。

 List<MyObject> dataList = DataAccessService.getDummyData();
 ListView listView = (ListView)findViewById(R.id.lv);
 listView.setAdapter(new MyAdapter(this, R.id.textViewTitle, dataList));

如果您“甩”或“滑动”,您会注意到TextView不会受到具有透明背景(整个屏幕为黑色)的影响。当您使用ListView时,如果只有几行,那么从ListView结束到屏幕底部的位置,就会有一个透明的背景。

这是项目文件的链接:http://www.box.net/shared/5pybcpj8mkbfhv3j3ach。如果您无法访问它,请告诉我。如果部署到您的设备,您应该看到效果(透明背景)。

这是指向另一个项目文件的链接:http://www.box.net/shared/i9vs6yq9j2s4ysp994et。此项目文件仅使用Horizo​​ntalScrollView(不是上面引用的组件)。你可能会观察到,有透明的背景。

3 个答案:

答案 0 :(得分:1)

您可以省略Horizo​​ntalScrollView,因为ListView会自动展开,如果没有空间,它会自动滚动。只需使用

    <LinearLayout>
    <ListView android:id="@+id/listView1"/>
    </LinearLayout>

答案 1 :(得分:1)

如果您希望实现水平分页,请参阅兼容性库中的ViewPager小部件:http://developer.android.com/sdk/compatibility-library.html它可以一直运行回运行Android 1.6的设备。它还允许您在任何给定时间只保留几页“实时”,使您的视图层次结构更加简单,并允许您使用大型数据集。

答案 2 :(得分:0)

我不确定这是否会有所帮助,但可能

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