我的LinearLayout
内容包含ListView
和ImageView
。
根据文档布局,如果元素的高度大于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>
答案 0 :(得分:0)
如果ListView
不为空,您可以将ImageView
注册为list footer,然后使用ListView
进行滚动。但是,如果列表为空,则不会显示页脚,因此您还必须将ImageView
添加到空视图中。
答案 1 :(得分:0)
前2条评论而不是可能的解决方案
(1)ListView
当其中没有任何内容时将无法滚动。相反,它将显示一个空视图,您可以使用编程方式或使用XML进行设置(通常是一个文本视图,其中显示的内容为“您的列表为空”)。
(2)当ImageView
设置为ListView
时,您的wrap_content
设置为固定高度。因此,当您的ListView
包含的元素数量大于屏幕区域时,它会将您的ImageView
推出视野。因为我还没有看到LinearLayout
或RelativeLayout
如果屏幕上有更多的内容而不是空间(我只是试图让它发生),那么它会变得可滚动。我对你的内容并不感到惊讶重新描述。
你是不对的,因为孩子使用ScrollView
和ListView
是不对的。我会尝试的是 - 而不是将ListView
和ImageView
放在同一个LinearLayout
中 - 将两者分开。我不知道您的其余XML,但如果您将ImageView
移出该布局元素,您应该能够将其放置在包含ListView
的部分下方,以便 - 无论大小如何列表 - ImageView
将保留在同一位置。
上面使用页脚的建议可能有效,但是footer
固定在列表的底部。这意味着,如果您的列表非常长,那么除非您向下滚动到足以暴露它,否则footer
将不可见。如果您希望图像始终保持可见,例如将列表滚动到图像后面,然后您需要使用不同的方法。