web-dev-qa-db-ja.com

フローティングアクションボタンの色を変更するにはどうすればよいですか?

fab.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(PrivateDealActivity.this, R.color.colorWhite)));

これは機能していません。フローティングアクションボタンの背景色を変更する方法

6
Jeeva V

ぜひお試しください。

app:backgroundTint="@Android:color/darker_gray"
1
Agilanbu

マテリアルコンポーネントFloatingActionButton および マテリアルtheme デフォルトでは、属性colorSecondaryの色を使用します。

この色を変更するには、さまざまなオプションがあります。

  • Xmlでapp:backgroundTint属性を使用できます。
<com.google.Android.material.floatingactionbutton.FloatingActionButton
       ...
       app:backgroundTint=".." />
  • <item name="backgroundTint">属性を使用してカスタムスタイルを使用できます
  <!--<item name="floatingActionButtonStyle">@style/Widget.MaterialComponents.FloatingActionButton</item> -->
  <style name="MyFloatingActionButton" parent="@style/Widget.MaterialComponents.FloatingActionButton">
    <item name="backgroundTint">....</item>
  </style>
  • マテリアルコンポーネントのバージョン1.1.0から、新しいmaterialThemeOverlay属性を使用してデフォルトを上書きすることもできますコンポーネントの場合のみcolorSecondary
  <style name="MyFloatingActionButton" parent="@style/Widget.MaterialComponents.FloatingActionButton">
    <item name="materialThemeOverlay">@style/MyFabOverlay</item>
  </style>

  <style name="MyFabOverlay">
    <item name="colorSecondary">@color/custom2</item>
  </style>
1

あなたが使うことができます

app:backgroundTint="@color/colorAccent"

以下のように

<Android.support.design.widget.FloatingActionButton
        Android:id="@+id/add_student_house"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        app:backgroundTint="@color/colorAccent"
        Android:src="@drawable/ic_house_add"/>

app:backgroundTintではないことに注意してくださいAndroid:backgroundTint

また、スタイルを追加することでそれを行うことができます:

<style name="AppTheme.FloatingActionButton" >
        <item name="colorAccent">@color/colorAccent</item>
</style>

そして、このスタイルを以下のようなフローティングアクションボタンのテーマとして指定します。

Android:theme="@style/AppTheme.FloatingActionButton"

<Android.support.design.widget.FloatingActionButton
    Android:id="@+id/add_student_house"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:theme="@style/AppTheme.FloatingActionButton"
    Android:src="@drawable/ic_house_add"/>
0
devu mani

この属性を使用するだけです。

Android:backgroundTint="@color/yourColor"
0
Sumit Shukla

問題の簡単な解決策は、デフォルトのcolorAccentを変更することです。

Android Developers-FloatingActionButton で述べられているように:

このビューの背景色は、デフォルトでテーマのcolorAccentになります。実行時にこれを変更したい場合は、setBackgroundTintList(ColorStateList)を介して変更できます。

プロジェクトの要件に関して、色のアクセントを変更できない場合でも、プログラムでこれを実装する必要がある場合は、コードを投稿できます。回答を更新させていただきます。

0
Giannis Brandt