无法在模拟器上正确放置edittext

时间:2014-03-18 01:08:07

标签: android

我有一个自定义列表视图,想把edittext放在里面,我把它放在右边,但是当我跑的时候,它就向左转,就像这样:

在我的图形布局上: enter image description here

在我的模拟器上

enter image description here

它假设在右边,这是我的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>

我试过清理它,但它没有工作

1 个答案:

答案 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;一个身份证。

希望这有帮助。