Android 设计库 Snackbar - 获取 TextView 返回 Null

vki*_*ins 5 android android-design-library android-snackbar

我正在尝试获取Snackbar's TextView。这是我正在使用的代码:

 Snackbar snackbar = Snackbar.make(mRecyclerView, message, Snackbar.LENGTH_LONG);
 View view = snackbar.getView();
 TextView tv = (TextView) view.findViewById(android.support.design.R.id.snackbar_text);
Run Code Online (Sandbox Code Playgroud)

运行上面的总是设置tv为空。我正在使用设计库版本23.0.0,在小吃店的布局资源中,我可以看到TextViewwith id snackbar_text。我错过了什么?

Nat*_*lie 8

对于那些无法找到有关此问题的最新答案的人,我随时为您提供帮助。

许多示例显示了此 res id 的使用:

android.support.design.R.id.snackbar_text

它已被替换为:

com.google.android.material.R.id.snackbar_text

例子:

Snackbar snackbar = Snackbar.make( /*however you decide to make it*/ );
View view = snackbar.getView();
TextView tv = (TextView)view.findViewById(android.support.design.R.id.snackbar_text);
//make your needed changes...
Run Code Online (Sandbox Code Playgroud)


Jef*_*lee 1

以下代码应该有效:

View containerView = inflater.inflate(R.layout.fragment_foo, container, false); 
Snackbar snackbar = Snackbar.make(containerView, "snackbar text", Snackbar.LENGTH_SHORT); 
View snackbarView = snackbar.getView(); 
TextView textView = (TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_text);
text.setText("It works"); snackbar.show();
Run Code Online (Sandbox Code Playgroud)