我正在开发一个具有自定义列表视图的项目。由于baseadapter的getView()
方法被保持被调用列表视图中的行数三次,有人建议我更改列表视图的宽度和高度至match_parent
。但现在的问题是列表视图下方有一个按钮,现在看不到。我如何让它可见。
我所指的帖子:custom listview adapter getView method being called multiple times, and in no coherent order
我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="LIST OF TASKS" />
<ListView
android:id="@+id/list_tasks_final"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="50px"
>
</ListView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/list_tasks_final"
android:layout_centerHorizontal="true"
android:text="SUBMIT JOB"
android:id="@+id/btnjobsubmit"
/>
</RelativeLayout>
问题是该按钮现在不可见。如何使其可见?
答案 0 :(得分:0)
查看我的代码
您应该将列表视图包装在另一个视图LinearLayout
中,并将高度设置为该布局。
<?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:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LIST OF TASKS" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="300dp">
<ListView
android:id="@+id/list_tasks_final"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50px"
>
</ListView>
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="SUBMIT JOB"
android:id="@+id/btnjobsubmit"
/>
</LinearLayout>
答案 1 :(得分:0)
您应该使用RelativeLayout
而不是LinearLayout
。根据我们的需要,它可以更灵活地放置不同的视图。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_gravity="center_horizontal"
android:text="LIST OF TASKS" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:id="@+id/list_tasks_final"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"/>
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="SUBMIT JOB"
android:id="@+id/btnjobsubmit" />
</LinearLayout>
答案 2 :(得分:0)
这里的问题是你的列表正在使用屏幕的所有空间(Layout_height = match_parent,layout_width = match_parent),按钮的属性为layout_below,然后它显示在整个屏幕的下方。
要解决此问题,只需删除属性layout_below:
android:layout_below="@+id/list_tasks_final"