如何使ListView和ImageView可滚动到LinearLayout?

时间:2013-08-07 14:56:12

标签: android listview scroll imageview android-linearlayout

我的LinearLayout内容包含ListViewImageView

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

但滚动不可用。

我只能在listview包含很多元素时滚动。但在这种情况下,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>

2 个答案:

答案 0 :(得分:0)

如果ListView不为空,您可以将ImageView注册为list footer,然后使用ListView进行滚动。但是,如果列表为空,则不会显示页脚,因此您还必须将ImageView添加到空视图中。

答案 1 :(得分:0)

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

(1)ListView当其中没有任何内容时将无法滚动。相反,它将显示一个空视图,您可以使用编程方式或使用XML进行设置(通常是一个文本视图,其中显示的内容为“您的列表为空”)。

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

你是不对的,因为孩子使用ScrollViewListView是不对的。我会尝试的是 - 而不是将ListViewImageView放在同一个LinearLayout中 - 将两者分开。我不知道您的其余XML,但如果您将ImageView移出该布局元素,您应该能够将其放置在包含ListView的部分下方,以便 - 无论大小如何列表 - ImageView将保留在同一位置。

上面使用页脚的建议可能有效,但是footer固定在列表的底部。这意味着,如果您的列表非常长,那么除非您向下滚动到足以暴露它,否则footer将不可见。如果您希望图像始终保持可见,例如将列表滚动到图像后面,然后您需要使用不同的方法。