所以我开始在设计支持库中使用新的Snackbar,但我发现当你在主题中定义"android:textColor"时,它会应用于快餐栏的文本颜色.如果您的主要文本颜色较暗,这显然是一个问题.

有没有人知道解决这个问题的方法,或者就如何为我的文字着色提出建议?
编辑2017年1月:(答案后)
虽然有一些自定义解决方案可以解决下面的问题,但提供主题Snackbars的正确方法可能会很好.
首先,你可能根本不应该android:textColor在你的主题中定义(除非你真的知道使用主题的范围).这基本上设置了连接到主题的每个视图的文本颜色.如果要在视图中定义非默认的文本颜色,请android:primaryTextColor在自定义视图中使用和引用该属性.
但是,对于应用主题Snackbar,请参考第三方材料文档中的质量指南:http://www.materialdoc.com/snackbar/(遵循程序化主题实现,使其不依赖于xml样式)
以供参考:
// create instance
Snackbar snackbar = Snackbar.make(view, text, duration);
// set action button color
snackbar.setActionTextColor(getResources().getColor(R.color.indigo));
// get snackbar view
View snackbarView = snackbar.getView();
// change snackbar text color
int snackbarTextId = android.support.design.R.id.snackbar_text;
TextView textView = (TextView)snackbarView.findViewById(snackbarTextId);
textView.setTextColor(getResources().getColor(R.color.indigo));
// change snackbar background
snackbarView.setBackgroundColor(Color.MAGENTA);
Run Code Online (Sandbox Code Playgroud)
(您也可以创建自己的自定义Snackbar布局,请参阅上面的链接.如果此方法感觉过于苛刻,并且您希望通过可能的支持库更新获得自定义Snackbar的可靠方法,请执行此操作.)
或者,请参阅下面的答案,以获得类似且可能更快的答案来解决您的问题.
android android-support-library snackbar android-design-library android-snackbar
Material设计网站提到了一个名为Snackbar的类似Toast的新元素:http://www.google.com/design/spec/components/snackbars-and-toasts.html
Android L预览SDK文档(抱歉无法链接,因为它只能下载)在类列表中没有提及Snackbar或者在Toast类文档中没有提到修饰符.我错过了一些明显的东西,还是应该建立自己的Snackbar.java?