【问题标题】:How To Create Textview & Radio Button Like This如何像这样创建 Textview 和单选按钮
【发布时间】:2014-03-28 10:25:08
【问题描述】:

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

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

这是我的 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>

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

【问题讨论】:

    标签: android android-layout android-xml


    【解决方案1】:

    不要像以前那样硬编码编辑文本的高度和宽度

    <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"
    

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

    【讨论】:

      【解决方案2】:

      试试这个..

      有两种方法

      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 并同时为 EditText 删除 android:layout_gravity="center"

      <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>
      

      【讨论】:

        【解决方案3】:

        将根线性布局更改为

        <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" >
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-01-01
          • 2021-02-03
          • 2011-01-30
          • 2022-01-03
          • 1970-01-01
          • 2011-10-28
          • 2020-12-06
          相关资源
          最近更新 更多