Android 将按钮动态添加到listView的顶部

Android 将按钮动态添加到listView的顶部,android,listview,dynamic,Android,Listview,Dynamic,我正在ListViewActivity上显示listView。我想在LisView的顶部添加一个按钮。我试过这个: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //.... setContentView(R.layout.listview_singlegrey); LinearLayout linear = (LinearLayo

我正在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>

但是我看不到按钮。知道为什么吗?

摆脱

setContentView(linear); 
另外,首先尝试在XML中添加按钮,并确保它显示出来。您可能需要摆弄
layout\u height
layout\u weight
参数,以便ListView不会将其推离屏幕。知道正确的参数后,在运行时设置它们。

摆脱

setContentView(linear); 

另外,首先尝试在XML中添加按钮,并确保它显示出来。您可能需要摆弄
layout\u height
layout\u weight
参数,以便ListView不会将其推离屏幕。知道正确的参数后,在运行时设置它们。

如果要将按钮添加到listview顶部,必须将其添加到第0个索引中

linear.addView(btAddComment, 0);

现在,您的listview位于索引1中。

如果要将按钮添加到listview顶部,必须将其添加到第0个索引中

linear.addView(btAddComment, 0);

现在,您的listview位于索引1中。

请查看此方法,该方法添加了一个固定视图以显示在列表顶部。

请查看此方法,该方法添加了一个固定视图以显示在列表顶部。

我猜您在代码中创建按钮时错过了该按钮的布局参数。 使用Button.setLayoutParams(新的LayoutParams(…))

但我不推荐这种方式。为什么不在listview上方添加按钮呢 在XML中?然后它就固定在那里。像这样:

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

如果您想要一个“可滚动按钮”,它可以与listview一起滚动,
使用按钮编写XML文件,通过GetLayoutFlater.inflate(R.layout…)将其膨胀,然后使用ListView.addHeaderView()。

我猜在代码中创建按钮时,您可能会错过按钮的LayoutParams。 使用Button.setLayoutParams(新的LayoutParams(…))

但我不推荐这种方式。为什么不在listview上方添加按钮呢 在XML中?然后它就固定在那里。像这样:

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

如果您想要一个“可滚动按钮”,它可以与listview一起滚动, 使用按钮编写XML文件,通过getLayoutInflater.充气(R.layout…)并使用ListView.addHeaderView()。

使用ListView所需的内容

根据文档

添加固定视图以显示在顶部 在名单上。如果addHeaderView是 多次调用后,视图将 按添加顺序显示。 使用此调用添加的视图可能需要 如果他们愿意,集中注意力。注意:称之为 在调用setAdapter之前。这是真的 ListView可以包装提供的光标 其中一个也将说明 页眉和页脚视图

使用
列表视图
所需的内容

根据文档

添加固定视图以显示在顶部 在名单上。如果addHeaderView是 多次调用后,视图将 按添加顺序显示。 使用此调用添加的视图可能需要 如果他们愿意,集中注意力。注意:称之为 在调用setAdapter之前。这是真的 ListView可以包装提供的光标 其中一个也将说明 页眉和页脚视图


是否需要listview的标题?您可以像这样使用标题

listView.addHeaderView(view);

此处的视图可以是任何视图组件。

是否需要listview的标题?您可以像这样使用标题

listView.addHeaderView(view);

此处视图可以是任何视图组件。

在将按钮添加到布局之前,应尝试设置布局参数

大概是这样的:

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

这应该能奏效。如果没有,请告诉我。

在将按钮添加到布局之前,您应该尝试设置布局参数

大概是这样的:

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

这应该能奏效。如果没有,请告诉我。

我不想在版面上固定按钮,因为我在其他不需要它的列表活动中使用它。我不想在版面上固定按钮,因为我在其他不需要它的列表活动中使用它。