0

我有一个 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(不是上面引用的组件)。您可能会观察到,有透明背景。

4

3 回答 3

1

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

    <LinearLayout>
    <ListView android:id="@+id/listView1"/>
    </LinearLayout>
于 2011-08-14T23:45:55.050 回答
1

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

于 2011-08-15T00:21:44.833 回答
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>
于 2011-08-14T23:43:21.357 回答