Создайте EditText с RadioButton справа - PullRequest
0 голосов
/ 26 апреля 2019

Я создаю активность, пользователь которой может создать вопрос и где можно создавать ответы, поэтому теперь у меня есть это:

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

Редактировать

Для первого варианта я хочу что-то вроде этого, есть 2 строки TextInputLayout с EditTexts, а кружок справа - RadioButton

enter image description here

Ответы [ 3 ]

0 голосов
/ 26 апреля 2019
 <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 голосов
/ 26 апреля 2019

Пожалуйста, проверьте ниже код. Это решит вашу проблему в обоих случаях, просто нужно обрабатывать видимость альтернативных ответов. Если у вас возникнут какие-либо проблемы, пожалуйста, сообщите мне об этом в разделе комментариев.

Используйте свои собственные средства и активы.

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

Пожалуйста, подтвердите ответ, если он будет работать для вас. Спасибо!

0 голосов
/ 26 апреля 2019

Попробуйте это

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

По сути, мы устанавливаем layoutweit равным 1 для текста редактирования (или textinput в вашем случае) и шириной 0dp.Таким образом, Edittext будет использовать только доступное пространство, а не всю ширину

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...