我正在尝试在Listview之后添加textview(在Listview的底部)。 (API 7)
由于某种原因,它似乎是顶部。
<?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">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FF0c46a6"
android:orientation="vertical" android:gravity="center_horizontal">
<TextView
android:id="@+id/skypename"
android:layout_width="0dip"
android:layout_height="0dip"
android:layout_weight="1"
android:textColor="#FFFFFF" android:textSize="12pt"/>
</LinearLayout>
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false" />
</LinearLayout>
答案 0 :(得分:5)
您正在使用方向垂直的LinearLayout,并且您已在ListView之前定义了TextView。因此,首先在ListView之后绘制TextView。
改为使用RelativeLayout
并使用android:layout_alignParentBottom="true"
将TextView对齐父级的底部,并使用android:layout_above="@+id/linearLayout1"
列表视图,以使列表视图保持在textview的顶部。
<?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"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FF0c46a6"
android:orientation="vertical" android:gravity="center_horizontal"
android:layout_alignParentBottom="true">
<TextView
android:id="@+id/skypename"
android:layout_width="0dip"
android:layout_height="0dip"
android:layout_weight="1"
android:textColor="#FFFFFF" android:textSize="12pt"/>
</LinearLayout>
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false" android:layout_above="@+id/linearLayout1"/>
</RelativeLayout>
答案 1 :(得分:1)
你可以这样做..
<?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"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FF0c46a6"
android:orientation="vertical" android:gravity="center_horizontal">
<TextView
android:id="@+id/skypename"
android:layout_width="0dip"
android:layout_height="0dip"
android:layout_weight="1"
android:textColor="#FFFFFF" android:textSize="12pt"/>
</LinearLayout>
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:layout_above="@+id/bottom" />
<TextView
android:id="@+id/bottom"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textSize="12pt"/>
</RelativeLayout>
答案 2 :(得分:1)
我将LinearLayout重新安排到RelativeLayout,但它并不像我想象的那么容易。在我的情况下,我在ListView的上方和下方都有TextView。
为了使ListView不覆盖任何TextView,我必须在包含ListView的布局中使用“layout_below”和“layout_above”。像这样的列表视图布局:
android:layout_below="@+id/top_layout"
android:layout_above="@+id/bottom_layout"
当我从底部TextView写下这个:
android:layout_below="@+id/listview_layout"
列表覆盖了它(=不起作用)。
所以,诀窍似乎是layout_below和layout_above标签的放置。
另一种解决方案(不需要RelativeLayout)是在列表中添加页脚视图。像这样:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.main_layout, container, false);
myItemAdapter = new ItemAdapter(this, com.example.app.R.layout.listitem, theList);
View footer = inflater.inflate(R.layout.notify_row, null);
mListView.addFooterView(footer);
mListView.setAdapter(myItemAdapter);
return v;
}
对于此解决方案,您必须为底部视图创建布局文件。此外,您必须在调用setAdapter之前调用addFooterView。
答案 3 :(得分:-1)
如果您为高度和宽度提供属性为fillparent,那么您将永远不会在listview下面看到textview。
你可以做一件事:将高度提供为固定的dp,然后将你的textview放在列表下面。