【发布时间】:2018-01-26 23:10:47
【问题描述】:
我需要创建一个带有文本的 Snackbar,当我单击它时,Snackbar 将关闭。但是,操作按钮不是文本,而是呈现为带有我的操作文本的按钮。我从来没有在任何地方看到过这样的问题。 android.support.design v7 版本:25.3.1。最低 API 版本为 16。
Snackbar snackbar = Snackbar.make(v_osnov, Html.fromHtml("
<fontcolor=\"#ffffff\">Tag deleted</font>") , Snackbar.LENGTH_INDEFINITE);
snackbar.setDuration(5000);
snackbar.setAction("Dismiss", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
snackbar.show();
这是我得到的,而不仅仅是操作文本:
【问题讨论】:
-
不得不使用 HTML 将文本变成白色已经是一个不好的迹象。那应该是自动的-深色背景上的白色文本。 /// 什么是
v_osnov?你扩展AppCompatActivity了吗?您使用 AppCompat 或 Design 主题吗?您是否曾在任何时候使用getApplicationContext()来增加视图? -
我使用 HTML 是因为默认文本颜色是深色,而不是白色。 v_osnov 是一个 xml 资源文件,它是 MainActivity 的一部分。此外,实现 Snackbar 的类不是 Activity。我正在使用 AppCompat 主题
-
我的观点是默认情况下文本应该是白色的。您不必将其设置为白色,这不是解决方案。删除 HTML。该按钮看起来像 Android 2 主题。它不应该。整个 Snackbar 使用了糟糕的主题。 ///请在您的问题代码中添加您如何获得
v_osnov以及您从何处获得上下文。 -
查看 v_osnov=cma.getLayoutInflater().inflate(R.layout.edt_osnov,null); - 其中“cma”是 MainActivity 的对象
-
让我们调试一下。如果你改为写
Snackbar.make(activity.findViewById(android.R.id.content), "Tag deleted", Snackbar.LENGTH_INDEFINITE),它是否可以正常工作?
标签: java android android-snackbar