如何创建Textview&单选按钮就像这样

时间:2014-03-28 10:25:08

标签: android android-layout android-xml

我是一个应用程序,我将Radio Button& TextView在同一行。但是当我在Nexus 7上运行时,它看起来像这样:enter image description here

enter image description here

我想创建第二个。如何解决这个问题:

这是我的XML:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:background="@drawable/loginsigninbackground" >

   </RelativeLayout>

    <LinearLayout

        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:background="@android:color/white"
        android:orientation="vertical" >

       <EditText
        android:id="@+id/UserNameToLogin"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:hint="@string/username"
        android:ems="10"
        android:layout_gravity="center"
        android:background="@drawable/customised_edit_text"
        android:singleLine="true"
        android:gravity="center|left"
        android:textColorHint="#30D683"
        android:paddingLeft="20dp"
        >
        <requestFocus />
       </EditText>   

       <EditText
        android:id="@+id/UserPasswordToLogin"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:hint="@string/password"
        android:ems="10"
        android:inputType="textPassword"
        android:layout_gravity="center"
        android:background="@drawable/customised_edit_text"
        android:singleLine="true"
        android:gravity="center|left"
        android:textColorHint="#30D683"
        android:layout_marginTop="5dp"
        android:paddingLeft="20dp"
        >

    </EditText> 


        <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

       <RadioButton
            android:id="@+id/radioButtonRememberMe"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="@string/remember_me"
            android:checked="false"
            android:textSize="18sp"
            android:textColor="#30D683" 
            android:button="@drawable/radio_selector"
            android:background="@android:color/transparent" />

            <TextView
        android:id="@+id/UserRememberMe"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="@string/forgot_password"
        android:textColor="#30D683"
        android:textSize="18sp" 
        android:cacheColorHint="@android:color/transparent"
        android:background="@android:color/transparent"
      />
       </LinearLayout>

        <Button
     android:id="@+id/ButtonNext"        
     android:layout_width="match_parent"
     android:layout_height="60dp"
     android:text="@string/next"
     android:background="@drawable/customised_button_click"
     android:onClick="gotosignup"
     android:clickable="true"
     android:textSize="20sp"
      />

         <Button
      android:id="@+id/ButtonSignUp" 
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="@string/signup"
      android:gravity="center"
      android:textSize="20sp"
      android:background="@drawable/customised_button_click"
      android:onClick="gotosignup"
      android:clickable="true"
      />

   </LinearLayout>

</LinearLayout>

我可以知道实现目标的正确方法是什么?也许这个问题太基础了,但我找不到合适的解决方案。请帮帮我。

3 个答案:

答案 0 :(得分:0)

不要像编辑文本一样硬编码编辑文本的高度和宽度

<EditText
        android:id="@+id/UserPasswordToLogin"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:hint="@string/password"
        android:ems="10"
        android:inputType="textPassword"
        android:layout_gravity="center"
        android:background="@drawable/customised_edit_text"
        android:singleLine="true"
        android:gravity="center|left"
        android:textColorHint="#30D683"
        android:layout_marginTop="5dp"
        android:paddingLeft="20dp"
        >

所以基本上是

android:layout_width="300dp"
android:layout_height="40dp"

而非提供fill_parentmatch_parent

android:layout_width="match_parent"
 android:layout_height="match_parent"

android:layout_width="fill_parent"
android:layout_height="fill_parent"

对所有文本字段执行此操作,然后尝试。

答案 1 :(得分:0)

试试这个..

有两种方式

1)将android:layout_width="match_parent"

的EditText宽度更改为match_parent
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1" >
    </RelativeLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:background="@android:color/white"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/UserNameToLogin"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:ems="10"
            android:gravity="center|left"
            android:hint="username"
            android:paddingLeft="20dp"
            android:singleLine="true"
            android:textColorHint="#30D683" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/UserPasswordToLogin"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginTop="5dp"
            android:ems="10"
            android:gravity="center|left"
            android:hint="password"
            android:inputType="textPassword"
            android:paddingLeft="20dp"
            android:singleLine="true"
            android:textColorHint="#30D683" >
        </EditText>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <RadioButton
                android:id="@+id/radioButtonRememberMe"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@android:color/transparent"
                android:checked="false"
                android:text="remember_me"
                android:textColor="#30D683"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/UserRememberMe"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@android:color/transparent"
                android:cacheColorHint="@android:color/transparent"
                android:text="forgot_password"
                android:textColor="#30D683"
                android:textSize="18sp" />
        </LinearLayout>

        <Button
            android:id="@+id/ButtonNext"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:clickable="true"
            android:onClick="gotosignup"
            android:text="next"
            android:textSize="20sp" />

        <Button
            android:id="@+id/ButtonSignUp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:gravity="center"
            android:onClick="gotosignup"
            android:text="signup"
            android:textSize="20sp" />
    </LinearLayout>

</LinearLayout>

2)将LinearLayout宽度更改为300dp,同时删除android:layout_gravity="center"

EditText
<LinearLayout
    android:layout_width="300dp"
    android:layout_height="wrap_content" >

       <RadioButton
            android:id="@+id/radioButtonRememberMe"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="@string/remember_me"
            android:checked="false"
            android:textSize="18sp"
            android:textColor="#30D683" 
            android:button="@drawable/radio_selector"
            android:background="@android:color/transparent" />

            <TextView
        android:id="@+id/UserRememberMe"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="@string/forgot_password"
        android:textColor="#30D683"
        android:textSize="18sp" 
        android:cacheColorHint="@android:color/transparent"
        android:background="@android:color/transparent"
      />
       </LinearLayout>

答案 2 :(得分:0)

将root linearlayout更改为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical" >

并在childlayout中将布局宽度设置为300dp

 <LinearLayout
    android:layout_width="300dp"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:background="@android:color/white"
    android:orientation="vertical" >