我使用此XML在底部显示我的Button
,在顶部显示一个TextView
,在中间显示一个TextView
。中间文本视图涵盖了按钮和顶部textview之间的整个范围。中间TextView
根本没有显示。有什么问题?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/task"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tasks"
/>
<Button
android:id="@+id/btnAddTask"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/AddTasks"
android:layout_alignParentBottom="true"
/>
<TextView
android:id="@+id/TasksList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tasks"
android:layout_above="@id/task"
android:layout_below="@id/btnAddTask"
/>
</RelativeLayout>
答案 0 :(得分:2)
您的问题肯定是您的按钮下面有TasksList TextView。交换layout_above和layout_below值。这对我有用:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/task"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tasks"
/>
<Button
android:id="@+id/btnAddTask"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/AddTasks"
android:layout_alignParentBottom="true"
/>
<TextView
android:id="@+id/TasksList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tasks"
android:layout_above="@id/btnAddTask"
android:layout_below="@id/task"
/>
</RelativeLayout>
答案 1 :(得分:1)
你如何制定这个问题肯定有问题。
你有按钮,alignParentBottom="true"
...然后对于TasksList TextView
,它被设置在按钮下面......基本上在屏幕之外。
您可以从RelativeLayout
移除方向...相对布局没有像LinearLayout那样的方向。
正如你所描述的......我不是100%你可以用Relative Layout
做到这一点。如果你只想在顶部放置一个东西,一个居中,另一个放在底部,最好为每个放置一个参数,centerInParent
,alignParentTop
和alignParentBottom
。< / p>
如果你重新考虑LinearLayout
(正如我猜你开始的那样),你会坚持使用垂直方向,然后给它们layout_weight
0,1和0,确保高度为设置为wrap_content。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/task"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
/>
<TextView
android:id="@+id/TasksList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tasks"
android:layout_weight="1"
/>
<Button
android:id="@+id/btnAddTask"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/AddTasks"
android:layout_weight="0"
/>
</LinearLayout>
答案 2 :(得分:1)
问题是你颠倒了上面的布局和下面的布局: 尝试
android:layout_below="@id/task"
android:layout_above="@id/btnAddTask"
见截图。
这是完整的布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/task"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tasks"
/>
<Button
android:id="@+id/btnAddTask"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/AddTasks"
android:layout_alignParentBottom="true"
/>
<TextView
android:id="@+id/TasksList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tasks"
android:layout_below="@id/task"
android:layout_above="@id/btnAddTask"
/>
</RelativeLayout>