gpt4 book ai didi

android - 如何以编程方式使用 ColorStateList 设置 FloatingActionButton 的 backgroundTint?

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:52 25 4
gpt4 key购买 nike

通过 setBackgroundTintList 方法以编程方式设置我的 FloatingActionButtonbackgroundTint 不起作用,但通过 XML app:backgroundTint< 设置它 标签确实有效——这是为什么?

fab_background_color.xml 颜色列表状态为:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_selected="true"
android:color="#654321"/>

<item android:color="#123456"/>

</selector>

我的 Activity 布局是:

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<android.support.design.widget.FloatingActionButton
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>

</android.support.design.widget.CoordinatorLayout>

和 Activity 代码:

public class SampleActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_position_sample);

final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.test);

// Uncomment to test - this does NOT work however.
//fab.setBackgroundTintList(getResources().getColorStateList(R.color.fab_background_color));

fab.setOnClickListener(new View.OnClickListener()
{
@Override public void onClick(View v)
{
if (fab.isSelected())
fab.setSelected(false);
else
fab.setSelected(true);
}
});
}
}

如果我添加:

fab.setBackgroundTintList(getResources().getColorStateList(R.color.fab_background_color));

或:

fab.setBackgroundTintList(ContextCompat.getColorStateList(this, R.color.fab_background_color));

设置点击监听之前的activity代码,没有任何反应。

如果我添加:

app:backgroundTint="@color/fab_background_color"

对于 FloatingActionButton 的 Activity 布局代码,我得到了预期的行为。

有什么想法吗?我做错了什么吗?

最佳答案

使用这个:

fab.setBackgroundTintList(ContextCompat.getColorStateList(getApplicationContext(), R.color.purple_200));

关于android - 如何以编程方式使用 ColorStateList 设置 FloatingActionButton 的 backgroundTint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40426928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com