我有一个自定义列表视图,想把edittext放在里面,我把它放在右边,但是当我跑的时候,它就向左转,就像这样:
在我的图形布局上:
在我的模拟器上:
它假设在右边,这是我的xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/txtListVDokterRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@+id/edtListVDokterType"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtListVDokterRuper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@+id/edtListVDokterType"
android:layout_marginLeft="100dp"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtListVDokterKelas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@+id/edtListVDokterType"
android:layout_marginLeft="190dp"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtListVDokterRuang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@+id/edtListVDokterType"
android:layout_marginLeft="280dp"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtListVDokterNama"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@+id/edtListVDokterType"
android:layout_marginLeft="370dp"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtListVDokterType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_marginLeft="660dp"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone" />
<TextView
android:id="@+id/txtListVDokterVST"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="750dp"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone" />
<CheckBox
android:id="@+id/cekListVDokterVst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true" />
<EditText
android:id="@+id/edtListVDokterType"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/cekListVDokterVst"
android:ems="10" >
<requestFocus />
</EditText>
</RelativeLayout>
我试过清理它,但它没有工作
答案 0 :(得分:1)
首先,设置与父对齐的CheckBox
。然后使用其ID,将EditText
放在左侧:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<CheckBox
android:id="@+id/cekListVDokterVst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true" />
<EditText
android:id="@+id/edtListVDokterType"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/cekListVDokterVst"
android:ems="10" >
<requestFocus />
</EditText>
</RelativeLayout>
在RelativeLayout
中,当您使用ID时,必须首先声明视图及其ID,然后根据它声明属性,如 toLeftOf ,上面<其他视图上的/ em>,以下等。
编辑:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- set the checkbox and your edittext to the first position -->
<CheckBox
android:id="@+id/cekListVDokterVst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true" />
<EditText
android:id="@+id/edtListVDokterType"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/cekListVDokterVst"
android:ems="10" >
<requestFocus />
</EditText>
<!-- set the other views according to the first ids above -->
<TextView
android:id="@+id/txtListVDokterRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@id/edtListVDokterType"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<!-- as I can see on your layout, you create the other views with
margin attributes, maybe you should create with toRightOf attribute.
>>> instead of margin=100dp/190dp... >>> use the following -->
<TextView
android:id="@+id/txtListVDokterRuper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@id/edtListVDokterType"
android:layout_toRightOf="@id/txtListVDokterRegister"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtListVDokterKelas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@id/edtListVDokterType"
android:layout_toRightOf="@id/txtListVDokterRuper"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtListVDokterRuang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignBaseline="@id/edtListVDokterType"
android:layout_toRightOf="@id/txtListVDokterKelas"
android:text="@string/emptyString"
android:textAppearance="?android:attr/textAppearanceLarge" />
<!-- ... -->
</RelativeLayout>
最后注意:当您设置新ID时,您会@+id/...
,但是当您需要使用ID时,请执行@id/...
(不使用+
)。你不需要重建&#34;一个身份证。
希望这有帮助。