Android 将按钮动态添加到listView的顶部
我正在ListViewActivity上显示listView。我想在LisView的顶部添加一个按钮。我试过这个: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
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));
这应该能奏效。如果没有,请告诉我。我不想在版面上固定按钮,因为我在其他不需要它的列表活动中使用它。我不想在版面上固定按钮,因为我在其他不需要它的列表活动中使用它。