【问题标题】:ListView item on form only showing one item表单上的 ListView 项目仅显示一项
【发布时间】:2017-08-11 15:23:26
【问题描述】:

我有一个包含多个 EditView 字段的表单。这些字段的数据是从数据库中加载的(在 onCreate() 方法中)。屏幕上的最后一个对象应该是一个 ListView,它应该显示与正在显示的记录相关的所有数据记录。所有数据都正确加载,并且此适配器似乎工作正常。它加载正确的数据,将数据正确格式化为适配器使用的 .xml 指定的两行布局。

问题是屏幕上的 ListView 被“缩小”为只显示一个项目,如果有更多项目,则添加一个滚动条。我希望 ListView 能够扩大大小以显示所有记录,并且屏幕本身是可滚动的(所有内容都包含在 ScrollView 中)。

所以,XML 看起来像这样:

<ScrollView
    android:layout_height="wrap_content"
    android:id="@+id/ScrollView1">
  <RelativeLayout
      android:layout_height="wrap_content"
      android:id="@+id/RelativeLayout1">
    <EditView
      android:id="@+id/EditView1>
    </EditView>
    <ListView
      android:id="@+id/ListView1
      android:layout_height="wrap_content"
      android:layout_below="@id/EditView1>
      android:divider="#b5b5b5"
      android:dividerHeight="1dp" />

然后我使用自定义 BaseAdapter 将数据填充到 ListView 中

listView = (ListView) findViewById(R.id.ListView1);
dbRecords = db.getAllRecordsByRecordId(recordId);
CBA_Records adapter = new CBA_Records(this, dbRecords);
listView.setAdapter(adapter);

这和我之前做过的都是一样的,除了这些都包裹在滚动视图中。这样做的原因是可能有比较小屏幕(或水平屏幕)容纳的更多字段,因此屏幕必须是可滚动的。而且,列表视图也必须在那里......

有什么建议吗?

【问题讨论】:

    标签: android listview baseadapter


    【解决方案1】:

    更多关于 invertigo 所说的内容。不推荐在ScrollView 中使用ListView

    ListView 设为根,并将其宽度和高度设置为"match_parent"。将ListView(标题)上方的其他内容放在单独的xml中。然后为标题添加新的 xml 文件,使用 addHeaderView() 方法将其作为标题添加到 ListView(看起来您希望所有内容都滚动)。

    【讨论】:

    • 谢谢大家。我知道不推荐在 ScrollView 中使用 ListView,但我想不出任何其他方法来做我想做的事情。在检查了 addHeaderView() 之后,我调整了在 SamColes.co.uk 上找到的解决方案,经过一些调试,我得到了它的工作。现在,所有内容都按原样滚动:)
    【解决方案2】:

    ListView 是自动垂直滚动的,所以你现在有两个垂直滚动区域,你希望哪个会消耗滚动事件?将您的 ListView 设置为静态高度(不推荐),或者设计您的布局,以便只有您想要滚动的区域(即 ListView)具有滚动功能并删除 ScrollView。还将您的基本布局(在本例中为 RelativeLayout)设置为 height=match-parent 和 ListView height=0dp weight=1,以防止 ListView 被“缩小”。

    或者,如果您不希望 ListView 独立滚动,请查看此解决方案:android listview display all available items without scroll with static header

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多