2011-07-26 26 views
1

我有一個LinearLayhout,它包含一個listView,並在其下面是一個ImageButton。 當我將項目添加到列表中時,imageButton會越來越低,這正是我想要的。當列表填充屏幕時,android元素下面的列表不見了

但是,當列表中有很多元素,以便列表足夠大以填充屏幕時,我可以向下滾動到列表的底部,但沒有更多,這意味着我看不到imageButton。我究竟做錯了什麼?即使當我向下滾動時,我也希望能夠看到ImageButton。 謝謝!

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/add_interest_layout_root" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:background="@color/back" android:layout_height="match_parent"> 
<ListView android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:divider="@drawable/downa" 
    android:footerDividersEnabled="false" 
    android:cacheColorHint="@android:color/transparent" 
    android:layout_gravity="center" 
    android:layout_marginTop="6dp" android:layout_height="wrap_content"> 
</ListView> 
<LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/linearLayout2" android:gravity="center"> 
    <LinearLayout android:orientation="vertical" android:gravity="center_horizontal" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/LinearLayout16"> 
     <ImageButton android:src="@drawable/add" android:id="@+id/btn_interest_more" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center_horizontal" android:background="@android:color/transparent"></ImageButton> 
     <TextView android:layout_height="wrap_content" android:textColor="@android:color/white" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="wrap_content" android:id="@+id/TextView08" android:text="be more\nspecific" android:gravity="center"></TextView> 
    </LinearLayout> 
</LinearLayout> 

+0

剛修好的列表視圖高度和嘗試,如:機器人:layout_height =「300dp」 – Abhi

+1

從未對意見的Android添加一個絕對的大小。以上建議不正確。 – PravinCG

回答

3

你應該這樣做。請注意,這是一個僞代碼,因此您最好填寫正確的屬性。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/add_interest_layout_root" 
android:layout_width="match_parent" 
android:background="@color/back" android:layout_height="match_parent"> 

     <LinearLayout android:layout_height="wrap_content" 
      android:layout_width="match_parent" android:id="@+id/linearLayout2" 
      android:gravity="center" android:layout_alignParentBottom="true"> 
      <!-- LinearLayout elements same as above --> 
     </LinearLayout> 

     <ListView android:id="@android:id/list" 
      android:layout_above="@+id/linearLayout2" 
      android:layout_width="match_parent" 
      android:divider="@drawable/downa" 
      android:footerDividersEnabled="false" 
      android:cacheColorHint="@android:color/transparent" 
      android:layout_gravity="center" 
      android:layout_marginTop="6dp" android:layout_height="match_parent"> 
     </ListView> 

</RelativeLayout> 
+0

感謝PravinCG,您的解決方案奏效! 我結束了使用 查看footerView = getLayoutInflater()。inflate(R.layout.add,null,false); getListView()。addFooterView(footerView); ,因爲我想列表有android:layout_height =「match_parent」(因爲當它在「wrap_content」我的ListAdapter的getView被稱爲兩次...)。 所以爲了一方面具有match_parent,並且列表下的項目縫合到列表中,另一方面,我添加了這個項目作爲其尾部添加了這個項目作爲列表中的最後一個元素。 – theWizard

0

添加到您的LinearLayout保存的ImageButton的

android:layout_alignParentBottom="true" 

UPDATE:

忘記上面的代碼。我誤解了你。抱歉。

而是執行此操作:添加此佈局作爲根佈局

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/scroll" 
    android:scrollbars="none" 
    android:layout_weight="1"> 

    <!-- Your code --> 

</ScrollView> 
+0

該屬性可用於RelativeLayout,因爲我在答案中發佈了該屬性。 LinearLayout沒有它,只是忽略它。 – PravinCG

+0

更新答案。檢查Plz – iTurki