0

我有LinearLayout一个包含ListView和的组件ImageView

根据文档,如果元素的高度大于 LinearLayout 的区域,则布局区域应该是可滚动的。

但滚动不可用。

只有当列表视图包含很多元素时,我才能滚动。但在这种情况下,ImageView组件根本不可见

ScrollView不允许使用,因为ListView有他自己的 Scroll 元素。

你能建议我该怎么做吗?

这是我的 xml 文件的一部分:

<LinearLayout android:orientation="vertical"
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent"
              android:layout_below="@id/top_header" 
              android:layout_above="@id/bottom_menu"
              android:layout_weight="1"
              android:id="@+id/sub_content_view">

    <ListView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/eventsListView"/>

    <ImageView
            android:layout_width="fill_parent"
            android:layout_height="260dp"
            android:id="@+id/empty_area"
            android:adjustViewBounds="true"
            android:background="@drawable/empty_area"
            android:contentDescription="@string/contentDescription"/>

</LinearLayout>
4

2 回答 2

0

如果你ListView不是空的,你可以注册ImageView列表页脚,然后它会随着ListView. 但是,如果列表为空,则不会显示页脚,因此您还必须将其添加ImageView到空视图中。

于 2013-08-07T15:02:29.943 回答
0

前 2 条评论不是一个可能的解决方案

(1)ListView当里面没有任何东西时将不能滚动。相反,它将显示一个空视图,您可以通过编程方式或使用 XML 设置该视图(通常是一个文本视图,显示“您的列表为空”的程度)。

(2) 你ImageView的设置为固定高度,而你ListView的设置为wrap_content。因此,当您ListView包含的元素足够多且大于屏幕区域时,它会将您推ImageView到视野之外。如果屏幕上的内容多于空间,我还没有看到LinearLayoutRelativeLayout突然变得可滚动(我只是试图让它发生)我对你所描述的并不感到惊讶。

您是对的,不赞成将 aScrollView与 aListView作为孩子一起使用。我会尝试的是 - 而不是将两者放在ListViewImageView一个中LinearLayout- 将两者分开。我不知道您的 XML 的其余部分,但是如果您将其ImageView移出该布局元素,您应该能够将其放置在包含ListView这样的部分下方 - 无论列表的大小如何 - 都ImageView将保持在同一个地方.

上面使用页脚的建议可能有效,但是,afooter被固定在列表的底部。footer这意味着,如果您的列表真的很长,除非您向下滚动到足够远以使其暴露,否则会有一个点不可见。如果您希望图像始终可见,例如让列表滚动到图像后面,那么您需要使用不同的方法。

于 2013-08-07T15:12:17.913 回答