fab.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(PrivateDealActivity.this, R.color.colorWhite)));
这不起作用。如何更改浮动按钮的背景颜色
答案 0 :(得分:1)
您的代码是完全正确的。我还以类似的方式编写了用于以编程方式更改浮动操作按钮 的背景色。只需检查您的xml代码一次。 我的XML代码:
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
app:borderWidth="0dp"
android:id="@+id/fab"
android:layout_margin="16dp"
app:elevation="8dp"/>
请记住,保持borderWidth="0dp"
很重要。
现在,在Java代码中:
fab = view.findViewById(R.id.fab);
fab.setBackgroundTintList(ColorStateList.valueOf(required_color));
在这里您可以使用Color.parseColor()
或ContextCompat.getColor()
替换 required_color 。
答案 1 :(得分:0)
一个简单的解决方案是更改默认的colorAccent。
如Android Developers-FloatingActionButton中所述:
此视图的背景色默认为主题的colorAccent。如果希望在运行时更改此设置,则可以通过setBackgroundTintList(ColorStateList)进行更改。
如果无法更改颜色强调,则考虑到项目的要求,但是您需要以编程方式实施此代码,因此可以发布代码,我很乐意更新我的答案。
答案 2 :(得分:0)
您可以使用以下代码更改背景色:
child_var = 'child1'
qs = getattr(ParentModelInstance, child_var+'_set').all()
答案 3 :(得分:0)
请尝试这个。
app:backgroundTint="@android:color/darker_gray"
答案 4 :(得分:0)
您可以使用
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"/>
答案 5 :(得分:0)
只需使用此属性:
android:backgroundTint="@color/yourColor"
答案 6 :(得分:0)
默认使用材料成分 FloatingActionButton
和material theme,它使用具有属性 colorSecondary
的颜色。
要更改此颜色,您可以使用其他选项:
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>
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>