0

我正在使用 Google 设计库 (23.1.0) 来显示小吃店。我的小吃店代码看起来像:

Snackbar snackbar = Snackbar.make(getView(), "Deleted", Snackbar.LENGTH_LONG);
snackbar.setActionTextColor(getResources().getColor(R.color.accent_color));
snackbar.setAction(R.string.undo, //anonymous class omitted);
snackbar.setCallback(//anonymous class omitted);
snackbar.show();

正在创建并显示小吃店。动作标签、动作颜色和所有侦听器都按预期工作。唯一的问题是没有显示“已删除”消息。如果我使用调试器并停止执行:snackbar.show(),我可以看到在snackbar > mView > mMessageView 中有一个名为mText 的字段,它的值为“已删除”。但是我看不到小吃店的信息。我已经尝试过同时使用字符串常量和资源 ID。

更重要的是,我尝试在干净的项目中使用非常相似的代码并且它可以工作。可能是什么原因?

缺少文字

4

2 回答 2

1

哦,看起来文字颜色真的和背景一样。我已经更换:

Snackbar snackbar = Snackbar.make(getView(), "Deleted", Snackbar.LENGTH_LONG);

和:

Snackbar snackbar = Snackbar.make(fab, Html.fromHtml("<font color=\"#ffffff\">Deleted</font>"), Snackbar.LENGTH_LONG);

现在我可以看到文字了。

更新:

经过进一步调查后,小吃栏文本的默认颜色取自 theme.xml。在我们的项目中,textColor 的值设置为#313131,snackbar 的背景为#323232。不可能注意到。

于 2015-11-03T12:23:10.667 回答
0

文本颜色(R.color.accent_color)可能有问题。也许文本颜色作为背景颜色?

尝试不使用此选项:

Snackbar snackbar = Snackbar.make(getView(), "Deleted", Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.undo, //anonymous class omitted);
snackbar.setCallback(//anonymous class omitted);
snackbar.show();
于 2015-11-03T12:11:29.410 回答