我发现将RelativeLayout
中的元素按正确顺序保留的问题。
我正在尝试实现以下元素放置:
Date
<DatePicker>
Value <EditText>
Description <EditText>
请参阅下面的屏幕截图,以便更好地了解它的外观:
问题是Description
标签(TextView
标识为label_description
)和相关EditText
元素显示在DatePicker
之上,当它有android:layout_below="@id/edittext_value"
。
将此更改为android:layout_below="@id/label_value"
(在文本标签下方对齐,而不是EditText
元素)似乎有效,但我仍然想了解这里发生了什么。
在Eclipse编辑器和正在运行的应用程序中也是如此。
知道这里有什么问题吗?
XML在下面。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/add_expense"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<!-- Date: field -->
<TextView
android:id="@+id/label_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/label_field_date"
android:textAppearance="?android:attr/textAppearanceMedium" />
<DatePicker
android:id="@+id/datepicker_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/label_date"
android:layout_centerHorizontal="true"
android:calendarViewShown="false" />
<!-- Value: field -->
<TextView
android:id="@+id/label_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/label_date"
android:layout_below="@id/datepicker_date"
android:text="@string/label_field_value"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/edittext_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignBaseline="@id/label_value"
android:layout_toRightOf="@id/label_value"
android:inputType="numberSigned"/>
<!-- Description: field -->
<TextView
android:id="@+id/label_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/label_value"
android:layout_below="@id/edittext_value"
android:text="@string/label_field_description"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/edittext_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignBaseline="@id/label_description"
android:layout_toRightOf="@id/label_description"
android:inputType="textAutoComplete"/>
<!-- buttons -->
<Button
android:id="@+id/button_OK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="18dp"
android:text="@string/label_button_addexpense_OK" />
<Button
android:id="@+id/button_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/button_OK"
android:layout_centerHorizontal="true"
android:text="@string/label_button_addexpense_clear" />
<Button
android:id="@+id/button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/button_OK"
android:layout_alignParentRight="true"
android:text="@string/label_button_addexpense_cancel" />
</RelativeLayout>
答案 0 :(得分:0)
使用此
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/add_expense"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<!-- Date: field -->
<TextView
android:id="@+id/label_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Date"
android:textAppearance="?android:attr/textAppearanceMedium" />
<DatePicker
android:id="@+id/datepicker_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/label_date"
android:layout_centerHorizontal="true"
android:calendarViewShown="false" />
<!-- Value: field -->
<TextView
android:id="@+id/label_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/datepicker_date"
android:text="Value"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/edittext_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/label_value"
android:layout_below="@+id/datepicker_date"
android:layout_toRightOf="@id/label_value"
android:inputType="numberSigned" />
<!-- Description: field -->
<TextView
android:id="@+id/label_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/label_value"
android:text="description"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/edittext_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/label_description"
android:layout_below="@+id/label_value"
android:layout_toRightOf="@+id/label_description"
android:inputType="textAutoComplete" />
<!-- buttons -->
<Button
android:id="@+id/button_OK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="18dp"
android:text="Ok" />
<Button
android:id="@+id/button_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button_OK"
android:layout_centerHorizontal="true"
android:text="Clear" />
<Button
android:id="@+id/button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button_OK"
android:layout_alignParentRight="true"
android:text="Cancel" />
</RelativeLayout>
答案 1 :(得分:0)
内部相对布局使用线性布局,并使用android:layout_weight =“”将页面拆分为不同的部分。确定方向。如果没有工作让我知道我会给出另一个解决方案。
答案 2 :(得分:0)
试试这个。
<?xml version="1.0" encoding="utf-8"?>
<!-- Date: field -->
<TextView
android:id="@+id/label_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Date"
android:textAppearance="?android:attr/textAppearanceMedium" />
<DatePicker
android:id="@+id/datepicker_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/label_date"
android:layout_centerHorizontal="true"
android:calendarViewShown="false" />
<!-- Value: field -->
<TextView
android:id="@+id/label_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/datepicker_date"
android:layout_marginTop="5dip"
android:text="Value"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/edittext_value"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/label_value"
android:layout_marginTop="5dip"
android:layout_toRightOf="@+id/label_value"
android:inputType="numberSigned" />
<!-- Description: field -->
<TextView
android:id="@+id/label_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/label_value"
android:layout_marginTop="5dip"
android:text="Description"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/edittext_description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/label_description"
android:layout_marginTop="5dip"
android:layout_toRightOf="@+id/label_description"
android:inputType="textAutoComplete" />
<!-- buttons -->
<Button
android:id="@+id/button_OK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="18dp"
android:text="OK" />
<Button
android:id="@+id/button_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button_OK"
android:layout_centerHorizontal="true"
android:text="ADD" />
<Button
android:id="@+id/button_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button_OK"
android:layout_alignParentRight="true"
android:text="Cancel" />
答案 3 :(得分:-1)
尝试使用@ + id /而不是@ id /,因为有时会出现ssue
答案 4 :(得分:-1)
TextView
,身份label_description
更改
android:layout_below="@id/edittext_value"
到
android:layout_below="@id/label_value"