как изменить тему конкретного макета в Android? - PullRequest
3 голосов
/ 22 декабря 2011

В моем приложении я хочу использовать тему для определенного макета при нажатии кнопки.Когда пользователь нажимает первую кнопку, тема должна быть черной для этого макета, и все представления в этом макете должны быть изменены в соответствии с темой.

1 Ответ

1 голос
/ 04 августа 2017

Надеюсь, это поможет ...

Я хотел бы сказать вам, что вы должны сначала сохранить все цвета фона для виджетов прозрачными.Так что вам просто нужно изменить фон вашего LinearLayout или RelativeLayout.

Использовать это ...

android:background="@android:color/transparent"

Предположим, у вас есть нормальная тема и кнопка RelativeLayout (id = mainBase)текстовое «ColorChanger» (id = colBtn), а также текстовое представление с текстом «Change My Color» (id = text).

И вы хотите изменить фон, а также цвет текста.

В вашем методе onCreate напишите это:

final RelativeLayout base = (RelativeLayout) findViewById(R.id.mainBase);
final TextView txt = (TextView) fidViewbyId(R.id.text);

colBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mainBase.setBackgroundColor(getResources().getColor(R.color.<ColorName>));
            text.setTextColor(getResources().getColor(R.color.<ColorName>));
        }
    });

Итак, когда вы нажимаете кнопку, цвет фона текста RelativeLayout и TextView меняется, и похоже, что вся тема была изменена.

...