2013-08-07 41 views
0

我有LinearLayout組件,其中包含ListViewImageView如何使ListView和ImageView可滾動到LinearLayout中?

根據文檔佈局區域應該可滾動元素的高度大於LinearLayout的區域。

但滾動不可用。

我只能在listview包含很多元素時才能滾動。但在這種情況下,ImageView組件根本不可見

使用ScrollView是不允許的,因爲ListView有他自己的滾動元素。

請問請問,我該怎麼辦?

這裏是我的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

如果ListView不是空的,你可以註冊爲ImageViewlist footer,它再與ListView滾動。但是,如果列表爲空,則不顯示頁腳,因此您必須將ImageView也添加到空白視圖中。

0

不是一個可行的解決方案首先2條評論

(1)ListView時不會有什麼也沒有可滾動。相反,它會顯示一個空白的視圖,您可以設置爲programaticlly或XML(通常是一個文本視圖,說明「您的列表爲空」)。

(2)您的ImageView設置爲固定高度,而您的ListView設置爲wrap_content。因此,當你的ListView包含的元素大於屏幕區域時,它會將你的ImageView從視圖中移出。由於我還沒有看到LinearLayoutRelativeLayout如果屏幕上有更多的東西比空間更容易滾動(我只是試圖讓它發生),我並不驚訝你描述的內容。

你是對的,使用ScrollViewListView作爲一個孩子是不受歡迎的。我會嘗試的是 - 不要將ListViewImageView放在同一個LinearLayout - 將兩者分開。我不知道XML的其餘部分,但是如果將ImageView移出該佈局元素,則應該能夠將它放在包含ListView的部分的下面,這樣 - 無論列表的大小如何,ImageView都將保留在同一個地方。

以上使用頁腳的建議可能有效,但是,footer固定在列表的底部。這意味着,如果您的列表很長,那麼將出現一個點,除非您向下滾動以至於暴露出來,否則footer不可見。如果您希望圖像始終保持可見狀態,例如讓圖像後面的列表滾動,然後您需要使用不同的方法。