2016-03-15 2 views
0

Я пробовал метод setBackgroundTintList, но для этого требуется min api 21, которого не хватает большинству программистов. Я хочу изменить bgcolor FloatingActionButton, но программно с сохранением обратной совместимости. Есть ли способ или обход?Программно сменить фон Цвет плавающегоАкцииButton

+0

Вы можете попробовать setBackgroundColor (цвет int). –

+0

Я пробовал, он не работает, поскольку он переопределяет цвет темы – AskQ

ответ

0

Вы можете использовать

mFab.setBackgroundTintList(ColorStateList.valueOf(your color in int)); 

Например:

fabAdd.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(mContext, R.color.main_screen_status_bar))); 
+0

Ребята, мой вопрос состоял в том, как делать с minSdk 15, как я уже говорил, метод setBackgroundTintList требует min api 21 – AskQ

+0

@michael Я попробую DrawableCompat и расскажу .. – AskQ

0

При использовании библиотеки поддержки в вашей сборке:

compile 'com.android.support:support-v4:23.2.1' 
compile 'com.android.support:appcompat-v7:23.2.1' 
compile 'com.android.support:preference-v7:23.2.1' 
compile 'com.android.support:preference-v14:23.2.1' 
compile 'com.android.support:design:23.2.1' 
compile 'com.android.support:support-vector-drawable:23.2.1' 
compile 'com.android.support:animated-vector-drawable:23.2.1' 

и в своем классе импорта это:

import android.support.design.widget.FloatingActionButton; 

вы должны быть в состоянии назвать:

setBackgroundTintList 

Вам также необходимо использовать версии поддержки виджетов в файлах верстки.

Я думаю, вы также можете использовать класс DrawableCompat, но у меня нет опыта с ним.

Смежные вопросы