2011-06-28 142 views
0

我在ListViewActivity上顯示一個listView。我想在LisView的頂部添加一個按鈕。我曾經嘗試這樣做:動態添加按鈕到列表視圖頂部

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //.... 
    setContentView(R.layout.listview_singlegrey); 
    LinearLayout linear = (LinearLayout) findViewById(R.id.list_comment); 
    Button btAddComment = new Button(this); 
    btAddComment.setText("Añadir comentario"); 
    linear.addView(btAddComment); 
    setContentView(linear); 
    //....  
} 

文件listview_singlegrey.xml如下:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:id="@+id/list_comment" 
     android:paddingLeft="10dp" android:paddingRight="10dp" android:background="@drawable/fondomain">  
    <ListView android:id="@+id/android:list" android:listSelector="@android:color/transparent" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:divider="@layout/linedivider" android:dividerHeight="10px" 
      android:cacheColorHint="#0000" android:paddingTop="10dp"   
      /> 
</LinearLayout> 

,但我不能看到按鈕。任何想法爲什麼?

回答

1

如果你想添加按鈕,將列表視圖的頂部,必須添加到第零指數

linear.addView(btAddComment, 0); 

現在你的ListView是指數1

1

擺脫

setContentView(linear); 

另外,嘗試先在XML添加按鈕,並確保它顯示了。您可能需要撥動layout_heightlayout_weight參數,以便ListView不會將其推到屏幕外。一旦你知道了正確的參數,在運行時設置它們。

0

我想你錯過了在代碼中創建它時按鈕的LayoutParams。 使用Button.setLayoutParams(新的LayoutParams(...))。

但我不推薦這種方式。爲什麼不只是在XML中添加列表視圖上方的按鈕 ?然後它在那裏保持固定。就像這樣:

<LinearLayout> <Button/> <ListView /> </LinearLayout> 

如果你想要一個「滾動按鈕」,它使用ListView滾動, 寫與按鈕一個XML文件,通過getLayoutInflater.inflate它充氣和使用(R.layout ..)。 ListView.addHeaderView()。

+0

我不想修復佈局上的按鈕,因爲我在其他人不需要它的ListActivities中使用它。 – Dayerman

0

需要使用addHeaderViewListView

根據文檔

添加一個固定視圖出現在列表的頂部 。如果多次調用addHeaderView爲 ,則視圖將按其添加的順序顯示 。 使用此調用添加的視圖如果需要可以採取 重點。注意:在調用setAdapter之前調用這個 。這是如此 ListView可以包裝提供的光標 與一個也將考慮 頁眉和頁腳視圖。

0

你想爲列表視圖的頭?可以使用報頭這樣

listView.addHeaderView(view); 

這裏視圖可以是任何視圖分量。

0

你應該嘗試添加按鈕佈局之前設置佈局參數。

事情是這樣的:

btAddComment.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

這應該做的伎倆。如果沒有,請告訴我。

相關問題