简体   繁体   English

带有Radiobuttons和Edittexts的Android布局

[英]Android Layout with Radiobuttons and Edittexts

I'm having a bit of trouble with an Android layout I'm currently trying to create. 我正在尝试创建的Android布局遇到一些麻烦。 Something along the lines of this. 有点像这样的东西。 (The editboxes need to be aligned with the radio buttons, yes.) The problem is that when I actually run this on a phone, it doesn't align up. (编辑框需要与单选按钮对齐,是的。)问题是,当我在手机上实际运行时,它不会对齐。

Should look something like: 应该看起来像:

在此输入图像描述

Currently looks like: 目前看起来像:

在此输入图像描述

The XML for this is below. 这方面的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"
android:gravity="top" >

<RadioGroup
    android:id="@+id/radioGroup1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="34dp"
    android:layout_marginTop="32dp" >

    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp" />

    <RadioButton
        android:id="@+id/radio2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/radio1"
        android:layout_below="@+id/radio1"
        android:layout_marginTop="20dp" />

    <RadioButton
        android:id="@+id/radio3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/radio2"
        android:layout_below="@+id/radio2"
        android:layout_marginTop="20dp" />

    <RadioButton
        android:id="@+id/radio4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/radio3"
        android:layout_below="@+id/radio3"
        android:layout_marginTop="20dp" />

    <RadioButton
        android:id="@+id/radio5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/radio4"
        android:layout_below="@+id/radio4"
        android:layout_marginTop="20dp" />
</RadioGroup>

<EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/radioGroup1"
    android:layout_toRightOf="@+id/radioGroup1"
    android:ems="10" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText1"
    android:layout_below="@+id/editText1"
    android:layout_marginTop="15dp"
    android:ems="10" />

<EditText
    android:id="@+id/editText3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText2"
    android:layout_below="@+id/editText2"
    android:layout_marginTop="15dp"
    android:ems="10" />

<EditText
    android:id="@+id/editText4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText3"
    android:layout_below="@+id/editText3"
    android:layout_marginTop="15dp"
    android:ems="10" />

<EditText
    android:id="@+id/editText5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/editText4"
    android:layout_below="@+id/editText4"
    android:layout_marginTop="15dp"
    android:ems="10" />

<EditText
    android:id="@+id/editText6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/radioGroup1"
    android:layout_alignLeft="@+id/editText5"
    android:ems="10" />

</RelativeLayout>

Try setting some equal heght for all the RadioButton and EditText instead of wrap_content 尝试为所有RadioButtonEditText设置一些相等的高度而不是wrap_content

 android:layout_height="30dp"

If you feels this is not accurate, I would suggest to create a custom item with RadioButton and EditText 如果你觉得这不准确,我建议用RadioButtonEditText创建一个自定义项目

// try this way,hope this will help you...

<?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"
    android:gravity="top|center_horizontal" >


    <RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:layout_marginLeft="20dp"
        android:checked="true" />

    <RadioButton
        android:id="@+id/radio1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/radio0"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"/>

    <RadioButton
        android:id="@+id/radio2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/radio1"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"/>

    <RadioButton
        android:id="@+id/radio3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/radio2"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"/>

    <RadioButton
        android:id="@+id/radio4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/radio3"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"/>

    <RadioButton
        android:id="@+id/radio5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/radio4"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="20dp"/>

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/radio0"
        android:layout_toRightOf="@id/radio0"
        android:layout_marginLeft="10dp"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/radio1"
        android:layout_toRightOf="@id/radio1"
        android:layout_marginLeft="10dp"
        android:ems="10" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/radio2"
        android:layout_toRightOf="@id/radio2"
        android:layout_marginLeft="10dp"
        android:ems="10" />

    <EditText
        android:id="@+id/editText4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/radio3"
        android:layout_toRightOf="@id/radio3"
        android:layout_marginLeft="10dp"
        android:ems="10" />

    <EditText
        android:id="@+id/editText5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/radio4"
        android:layout_toRightOf="@id/radio4"
        android:layout_marginLeft="10dp"
        android:ems="10" />

    <EditText
        android:id="@+id/editText6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/radio5"
        android:layout_toRightOf="@id/radio5"
        android:layout_marginLeft="10dp"
        android:ems="10" />

</RelativeLayout>

There are two things which I would suggest. 我建议有两件事。

  • You have different margingTop for EditText and its corresponding RadioButton. 您对EditText及其相应的RadioButton有不同的margingTop。 Either remove it or make it same. 删除它或使其相同。

  • RadioGroup is actually a LinearLayout. RadioGroup实际上是一个LinearLayout。 So, it doesn't take android:layout_alignLeft and android:layout_below . 所以,它不需要android:layout_alignLeftandroid:layout_below You can place a RadioButton directly in a RelativeLayout beside a EditText without RadioGroup but would have to handle the toggling in code. 您可以将RadioButton直接放置在没有RadioGroup的EditText旁边的RelativeLayout中,但必须处理代码中的切换。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM