Как сменить текст в правой части андроида?

Android по умолчанию Switch имеет текст, а затем Switch вкл./выкл. Я ожидаю Switch вкл./Выкл., А затем текст. Не используйте другие виджеты, например TextView. Как я могу установить текст Switch справа.

Ответ 1

введите описание изображения здесь

Оберните его в другой макет без текстового значения и добавьте текстовое представление. см. мой код:

    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:layout_height="wrap_content">
            <Switch
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/reminder" />
            <TextView
                android:layout_width="wrap_content"
                android:text="Meeting Reminders"
                android:layout_height="wrap_content" />
    </LinearLayout>

Ответ 2

использование

android:layoutDirection="rtl"

затем

app:switchPadding="8dp"

Ответ 3

Добавьте этот код в файл Xml:

            <Switch
                android:id="@+id/simpleSwitch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"

                android:layout_marginEnd="15dp"
                android:layout_marginRight="15dp"
                android:layout_marginTop="5dp"
                android:checked="false"
                android:textColor="@color/black"
                android:textOff="@string/no"
                android:textOn="@string/yes"
                android:theme="@style/SCBSwitch" />

            <TextView
                android:id="@+id/switchBtn_txtView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="10dp"
                android:layout_toLeftOf="@+id/simpleSwitch"
                android:gravity="center_horizontal" />

В активности или фрагменте:

Switch simpleSwitchBtn = (Switch) findViewById(R.id.simpleSwitch);
        final TextView switchBtn_txtView = (TextView) findViewById(R.id.switchBtn_txtView);


        simpleSwitchBtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){
                    switchBtn_txtView.setText("Yes");
                }
                else {
                    switchBtn_txtView.setText("No");
                }
            }
        });

Я думаю, что это полезно для вас.... Спасибо вам

Ответ 4

Просто используйте android: layoutDirection = "rtl" или, android: layoutDirection = "ltr"

Больше ничего не нужно

Ответ 5

Я смог добиться желаемого вида с помощью комбинации:

  • width (120dp)

  • padding (75dp)

  • и switchpadding (-90dp)

enter image description here