好的,我有同样的问题。我有一个 Maven 回购,有很多实用程序。一种方法“getConfiguredSnackBar”将小吃栏文本的颜色更改为白色,因为某些主题可以将其更改为黑色,使其难以阅读。
使用您的方法可以正常工作(如果它在同一个模块中)。但是在库中时, findViewById(android.support.design.R.id.snackbar_text) 为空。
我的丑陋但有效的方法:
@Nullable
private static TextView findTextViewInSnackbar(Snackbar snackbar){
ViewGroup snackView = ((ViewGroup) snackbar.getView());
for (int i = 0; i < snackView.getChildCount(); i++) {
View child = snackView.getChildAt(i);
if (child instanceof TextView) {
return ((TextView) child);
}
}
return null;
}
它工作正常。如果出于某种原因,您有多个 TextView,那么...祝您好运。修改它并按照您的意愿进行操作。