java - Android - 如何以编程方式创建 FAB?

标签 java android floating-action-button

我有一个充满自定义 View 的应用程序。当我尝试以编程方式创建 FAB 时,它会抛出错误

Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.

这是我的代码。

private FloatingActionButton getFAB() {
    FloatingActionButton fab = new FloatingActionButton(getContext());
    fab.setBackgroundDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_add_white_24dp));
    return fab;
}

这是我的应用主题。

    <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

请帮帮我。

最佳答案

通过使用主题包装器修复。但我仍然对使用 ContextThemeWrapper

感到惊讶
private FloatingActionButton getFAB() {
    Context context = new android.support.v7.internal.view.ContextThemeWrapper(getContext(), R.style.AppTheme);
    FloatingActionButton fab = new FloatingActionButton(context);
    return fab;
}

关于java - Android - 如何以编程方式创建 FAB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34555834/

相关文章:

java - 在 View 上添加按钮

android - 设置 FloatingActionButton 波纹

java - 如果括号具有更高的优先级,那么为什么首先解决增量运算符?

java - eclipse spring mvc 项目中 servlet 不可用错误

java - 从 JSON 格式的服务器响应获取 token

android - 如何使用 appcompact 添加 float 操作按钮

android - 在 Eclipse 中使用的 float 操作按钮库

java - Android 上的 Facebook 集成 fbconnect 断开的链接

java - 了解典型 Java Web 应用程序中的字符编码

android - 当没有可用的互联网连接时,我可以有这样的东西吗?