在右侧创建一个带有RadioButton的EditText

问题描述 投票:0回答:3

我正在创建一个Activity,用户可以创建一个问题,哪里可以创建答案,所以,从现在开始我有这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/viewBinary"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/constraintAnswerTypes"
    android:layout_centerHorizontal="true"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/linear_view_option_1_binary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/cb_answer1_binary_option"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="16dp" />

        <android.support.design.widget.TextInputLayout
            android:id="@+id/txt_input_option_1_binary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp"
            app:hintTextAppearance="@style/TextLabel">

            <EditText
                android:id="@+id/et_option1_binary"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:hint="@string/respuesta_1"
                android:inputType="textCapSentences" />
        </android.support.design.widget.TextInputLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/cb_answer2_binary_option"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="16dp" />

        <android.support.design.widget.TextInputLayout
            android:id="@+id/txt_input_option_2_binary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            app:hintTextAppearance="@style/TextLabel">

            <EditText
                android:id="@+id/et_option2_binary"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:hint="@string/respuesta_2"
                android:inputType="textCapSentences" />
        </android.support.design.widget.TextInputLayout>
    </LinearLayout>
</LinearLayout>

结果是这一个:

enter image description here

我遇到的问题是,如果用户输入的答案太长,他看不到它,所以我想在match_parent上做类似width的事情,这样用户有更多的空间可以写,但是我也有这个:

enter image description here

也许为每个答案创建4个不同的行有点难看......我最初的问题是,如何创建第一个输出为match_parent就好像只有2个答案,但那时我就有四个答案,如何打印那些EditText

编辑

对于第一个选项,我想要这样的东西,有两条线是TextInputLayoutEditTexts,右边的圆是RadioButton

enter image description here

android android-layout
3个回答
0
投票

试试这个

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_centerHorizontal="true" android:id="@+id/linear_view_option_1_binary">
        <android.support.design.widget.TextInputLayout
                android:layout_width="0dp"
                android:layout_weight = 1
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                app:hintTextAppearance="@style/TextLabel"
                android:id="@+id/txt_input_option_1_binary"
                android:layout_marginBottom="8dp">
            <EditText android:id="@+id/et_option1_binary"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:inputType="textCapSentences"
                      android:hint="@string/respuesta_1"/>
        </android.support.design.widget.TextInputLayout>
        <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:layout_marginBottom="8dp" android:id="@+id/cb_answer1_binary_option"/>
    </LinearLayout>

基本上我们在编辑文本(或你的情况下为textinput)和宽度为0dp时将layoutweit设置为等于1。这样Edittext将只消耗可用空间,而不是整个宽度


0
投票
 <LinearLayout
        android:id="@+id/linear_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/txt_input"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            app:hintTextAppearance="@style/TextLabel">

            <EditText
                android:id="@+id/edt_option"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:inputType="textCapSentences" />
        </android.support.design.widget.TextInputLayout>

        <RadioButton
            android:id="@+id/rb_answer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

0
投票

请检查以下代码。它将解决您的问题,只需要处理替代答案的可见性。如果您遇到任何问题,请在评论部分告诉我。

使用您自己的drawables和资产。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/viewBinary"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:orientation="vertical">

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

        <LinearLayout
            android:id="@+id/linear_view_option_1_binary"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">

            <android.support.design.widget.TextInputLayout
                android:id="@+id/txt_input_option_1_binary"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:layout_weight="1"
                app:hintTextAppearance="@style/Widget.Design.TextInputLayout">

                <EditText
                    android:id="@+id/et_option1_binary"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="Resposta 1"
                    android:inputType="textCapSentences" />
            </android.support.design.widget.TextInputLayout>

            <RadioButton
                android:id="@+id/cb_answer1_binary_option"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:layout_marginBottom="8dp" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/linear_view_option_3_binary"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:visibility="gone">

            <android.support.design.widget.TextInputLayout
                android:id="@+id/txt_input_option_3_binary"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:layout_weight="1"
                app:hintTextAppearance="@style/Widget.Design.TextInputLayout">

                <EditText
                    android:id="@+id/et_option3_binary"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="Resposta 3"
                    android:inputType="textCapSentences" />
            </android.support.design.widget.TextInputLayout>

            <RadioButton
                android:id="@+id/cb_answer3_binary_option"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:layout_marginBottom="8dp" />
        </LinearLayout>
    </LinearLayout>

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

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal">

            <LinearLayout
                android:id="@+id/linear_view_option_2_binary"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="horizontal">

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/txt_input_option_2_binary"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="8dp"
                    android:layout_weight="1"
                    app:hintTextAppearance="@style/Widget.Design.TextInputLayout">

                    <EditText
                        android:id="@+id/et_option2_binary"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Resposta 2"
                        android:inputType="textCapSentences" />
                </android.support.design.widget.TextInputLayout>

                <RadioButton
                    android:id="@+id/cb_answer2_binary_option"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="16dp"
                    android:layout_marginBottom="8dp" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/linear_view_option_4_binary"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="horizontal"
                android:visibility="gone">

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/txt_input_option_4_binary"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:layout_weight="1"
                    app:hintTextAppearance="@style/Widget.Design.TextInputLayout">

                    <EditText
                        android:id="@+id/et_option4_binary"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="Resposta 4"
                        android:inputType="textCapSentences" />
                </android.support.design.widget.TextInputLayout>

                <RadioButton
                    android:id="@+id/cb_answer4_binary_option"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="16dp"
                    android:layout_marginBottom="8dp" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

对于垂直布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/viewBinary"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/linear_view_option_1_binary"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/txt_input_option_1_binary"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:layout_weight="1"
            app:hintTextAppearance="@style/Widget.Design.TextInputLayout">

            <EditText
                android:id="@+id/et_option1_binary"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Resposta 1"
                android:inputType="textCapSentences" />
        </android.support.design.widget.TextInputLayout>

        <RadioButton
            android:id="@+id/cb_answer1_binary_option"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginBottom="8dp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linear_view_option_3_binary"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/txt_input_option_3_binary"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:layout_weight="1"
            app:hintTextAppearance="@style/Widget.Design.TextInputLayout">

            <EditText
                android:id="@+id/et_option3_binary"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Resposta 3"
                android:inputType="textCapSentences" />
        </android.support.design.widget.TextInputLayout>

        <RadioButton
            android:id="@+id/cb_answer3_binary_option"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginBottom="8dp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linear_view_option_2_binary"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/txt_input_option_2_binary"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_weight="1"
            app:hintTextAppearance="@style/Widget.Design.TextInputLayout">

            <EditText
                android:id="@+id/et_option2_binary"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Resposta 2"
                android:inputType="textCapSentences" />
        </android.support.design.widget.TextInputLayout>

        <RadioButton
            android:id="@+id/cb_answer2_binary_option"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginBottom="8dp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linear_view_option_4_binary"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/txt_input_option_4_binary"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:layout_weight="1"
            app:hintTextAppearance="@style/Widget.Design.TextInputLayout">

            <EditText
                android:id="@+id/et_option4_binary"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Resposta 4"
                android:inputType="textCapSentences" />
        </android.support.design.widget.TextInputLayout>

        <RadioButton
            android:id="@+id/cb_answer4_binary_option"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginBottom="8dp" />
    </LinearLayout>
</LinearLayout>

请批准答案,如果它适合您。谢谢!