Android:如何在同一个ScrollView中同时显示ListView和TableLayout?

时间:2015-07-09 04:51:35

标签: android listview scrollview android-linearlayout android-tablelayout

我有一个数据集,我需要在同一个xml文件中使用ListView和TableLayout显示它们。由于ListView和TableLayout都要长得多,我决定使用scrollView。我知道android scrollview只能有一个孩子。所以我编码如下。

  <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="8">

<LinearLayout
    android:id="@+id/showClaim_layout2"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentBottom="true"
    android:orientation="vertical">



    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/claimList"
        android:layout_margin="5dp">
    </ListView>

    <TableLayout
        android:id="@+id/showClaimTable"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFEBCD"
        android:layout_margin="5dp"
        android:shrinkColumns="0">

    </TableLayout>

</LinearLayout>

</ScrollView>

当我运行该程序时,它没问题。我的意思是页面滚动。但它并没有像我预期的那样工作!我需要显示所有列表元素,在列表结束后,tableLayout必须显示。如果屏幕大小不够,那么我们可以滚动页面并查看数据。 在这里,ListView不显示List的所有元素,TableLayout显示ScrollView中的所有tableRaws。

任何人都可以告诉我,我在哪里出错或以其他方式轻松完成任务。 感谢。

3 个答案:

答案 0 :(得分:1)

据我所知,你永远不应该在ListView内放ScrollView,因为它们实现了自己的滚动行为。考虑改变你的设计。

答案 1 :(得分:0)

我认为您可以使用

修复它
layout_weight 

将ListView的layout_weight设置为1,将TableLayour设置为0;

确保在更改set layot *:height到0dp;

之后

您可以查看以下文章。

first- second-

答案 2 :(得分:0)

"I knew that android scrollview can only have one child."正确但你忘了那个孩子应该有一个wrap_content的高度 另外@haint是正确的ListView有自己的滚动行为。仍在为android:layout_height="wrap_content"

尝试LinearLayout