1 кнопка FloatingAction для 2 разных логотипов - PullRequest
0 голосов
/ 30 июня 2019

Я хотел бы иметь возможность динамически менять логотип фабрики «Это будет моя любимая кнопка». Когда я нажимаю на него, логотип должен переключаться между 1 (например, вкл. И выкл.).

Например, когда вы нажимаете на нее, звезды становятся желтыми.

enter image description here

Вот скриншот симулятора с моей мышью на Fab, и на правом экране я нахожусь на onclicklistener с 2 различными рисованиями, которые я хочу динамически менять

Ответы [ 2 ]

2 голосов
/ 30 июня 2019

Я считаю, что решение SimpleCoder является подходящим. В качестве альтернативы, если вы хотите использовать одно менее логическое значение (но еще одно бизнес-правило, скрытое в вашем представлении), вы можете использовать свойство tag любого View для хранения чего-либо.

Псевдо-код:

if (mFavoriteFab.tag == null) {
    mFavoriteFab.tag = "" // no longer null
    // set drawable 1   


} else {
    mFavoriteFab.tag = null
    // set drawable 1
}

Вы не экономите много памяти, и это не обязательно более ясно (я настаиваю, чтобы это «решение» (if) не входило в ваш код Activity / Fragment / View, но все же, для чего-то столь же простого, как это, вы можете уйти с любого подобного подхода.

1 голос
/ 30 июня 2019

Напишите ниже вне любого метода.

boolean isClicked  = false;

Внутренний щелчок Код слушателя

 {
  isClicked = !isClicked;
 if(isClicked)
    mFavoriteFab.setImageResource(R.drawable.liked);
else
    mFavoriteFab.setImageResource(R.drawable.unliked);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...