我有一个列表视图,想要把它们放在上面(在y轴上)和下面(y轴),包括图像,文本视图和一排按钮。以下是我正在创建的简化版本。不幸的是,列表覆盖了(即在z轴上方)标题,因此标题文本不可见而不是在下面(在y轴上)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:id="@+id/footer"
android:text="footer"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"
/>
<ListView android:id="@+id/list_view"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_above="@id/footer"
android:background="#ff9999ff"/>
<TextView android:id="@+id/header"
android:text="header"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentTop="true"
android:layout_above="@id/list_view"
android:baselineAlignBottom="false"
/>
</RelativeLayout>
以下是相应的Activity类:
public class SampleListActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_activity);
}
}
答案 0 :(得分:10)
我无法在Android 1.5中使用相对布局,但我确实让Linear Layout工作。以下是我的解决方案:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:id="@+id/header"
android:text="header"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="0"
/>
<ListView android:id="@+id/list_view"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="#ff9999ff"
android:layout_weight="1"/>
<TextView android:id="@+id/footer"
android:text="footer"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="0"
/>
</LinearLayout>
答案 1 :(得分:5)
这应该可以使用RelativeLayout:
<?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:id="@+id/header"
android:text="header"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
<TextView android:id="@+id/footer"
android:text="footer"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"/>
<ListView android:id="@id/android:list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_below="@id/header"
android:background="#ff9999ff"/>
</RelativeLayout>
修改:已删除安卓:方向
答案 2 :(得分:2)
如果您定位的是Android 1.6及更高版本,请在android:layout_below="@id/header"
上的现有属性中添加ListView
。
如果您仍然定位到Android 1.5,则需要设置android:layout_below="@+id/header"
,并可能从+
中的当前android:id="@+id/header"
属性中删除TextView
符号。< / p>
RelativeLayout
,从1.6开始,支持对其他小部件的前向引用,只要第一次出现的ID值具有+
符号。
答案 3 :(得分:-1)
您只需要将重量1放在线性布局中的列表中,其他textviews / buttons / etc不需要具有任何重量值。