我在android上有一个菜单,并且想要在单击菜单项后在任何地方显示一个简单的快餐栏。无论我放什么而不是“ ???” 不起作用。整个应用程序均来自Android Studio默认标签视图模板。这是我的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Snackbar.make("????", "Pressed Setting", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
if (id == R.id.help_settings) {
Snackbar.make("???", "Pressed Help", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
return super.onOptionsItemSelected(item);
}
为什么会这样呢?我该如何解决?
更改
Snackbar.make("???", ....)
至
Snackbar.make(getWindow().getDecorView(), .....);
您必须将传递View
给Snackbar
的static make
方法。
在某些设备上,小吃栏可能会显示在系统的控制菜单下方,因此,您可能想致电findViewById(android.R.id.content)
以正确显示小吃栏:
Snackbar.make(getWindow().getDecorView().findViewById(android.R.id.content), .....);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句