私はFloatingActionButton
で作業しています。 ユーザーはonClick
イベント内でFAB背景色を切り替えることができます。ロリポップ前のデバイスのAndroid setBackgroundTintList
ただし、setBackgroundTintList
へのお勧めの電話は21+ APIとのみ互換性があるようです。
プレロリポップデバイスではどうすればいいですか?私が使うことのできる代替手段はありますか?
ありがとうございます。
私はFloatingActionButton
で作業しています。 ユーザーはonClick
イベント内でFAB背景色を切り替えることができます。ロリポップ前のデバイスのAndroid setBackgroundTintList
ただし、setBackgroundTintList
へのお勧めの電話は21+ APIとのみ互換性があるようです。
プレロリポップデバイスではどうすればいいですか?私が使うことのできる代替手段はありますか?
ありがとうございます。
あなたはsetSupportBackgroundTintList
も使用することができますが、背景描画可能に色合いを適用します。現在の色合いモード(SRC_INはデフォルト)を変更しません。
その後、View.setBackground(Drawable)を呼び出すと、ドロアブルが自動的に変更され、指定された色合いと色合いモードが適用されます。
はまたViewCompat.setBackgroundTintList()
の表情を取る背景描画可能に色合いを適用します。
これは、API v21以降で実行すると常に有効になります。 API v21より前のプラットフォームで実行している場合は、ビューがTintableBackgroundViewインターフェイスを実装している場合にのみ有効です。
私が前に使用してきたソリューションhere on SOを発見し、このです:
public static void setButtonTint(Button button, ColorStateList tint) {
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP && button instanceof AppCompatButton) {
((AppCompatButton) button).setSupportBackgroundTintList(tint);
} else {
ViewCompat.setBackgroundTintList(button, tint);
}
}
それは私が、それはあまりにもあなたのために働く願って私のために動作します。
シンプル:
fab.setBackgroundTintList(ColorStateList.valueOf(0xFF4CAF50));
fab
は、あなたのコースのFloatingActionButton
と0xFF4CAF50
ちょうど例の色である
あなたは私が何を意味するのか分からなかったと思います。もっと明確にするために@Skizo答えをチェックしてください。途中でありがとう! :) – Matteo
はこのように後方互換です –
@Matteo FAB実装はサポートlibから来ており、後方互換性をサポートしています。 'setBackgroundTintList()'の下には、pre-lolipopに異なるimplを使用しています。 KitKatデバイスで実績があります。 –
Kamil Sewerynがコメントで述べたように、fab.setBackgroundTintList()
がandroid.support.design.widget.FloatingActionButton
のインスタンスで動作することを確認できます。
私はSamsung Galaxy s5(android 6)とSamsung Galaxy s3(android 4.3)でテストしました。どちらも正しく動作します。
お試しください[回答](http://stackoverflow.com/a/30313299/4385913) –
@Skizoありがとうございました!そのViewCompat呼び出し(setSupportBackgroundTintListのどちらも)を認識していませんでした。私はそれが受け入れられるとマークすることができるようにあなた自身の答えを書いてください! – Matteo
Done Matteo:D ... –