我可以通过编程方式创建一个工具栏,将其传递给一个ApplicationContext:
Toolbar toolbar = new Toolbar(applicationContext);但当我尝试使用它时,它失败了:
Menu menu = toolbar.getMenu();
toolbar.setTitle("");
MenuItem item = menu.add(mContext.getString(R.string.HDLabel));
item.setCheckable(true);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);我得到以下例外:
Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 5: TypedValue{t=0x2/d=0x7f01010b a=-1}
at android.content.res.TypedArray.getColorStateList(TypedArray.java:482)
at android.widget.TextView.<init>(TextView.java:1043)
at android.widget.TextView.<init>(TextView.java:671)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:60)
at android.support.v7.view.menu.ActionMenuItemView.<init>(ActionMenuItemView.java:72)
at android.support.v7.view.menu.ActionMenuItemView.<init>(ActionMenuItemView.java:68)其他一些人也有同样的问题:升级到SDK 21 -错误充气类android.support.v7.internal.widget.ActionBarContainer。
但是我真的想使用ApplicationContext,因为我希望我的工具栏显示在活动之外。有人能做到吗?
编辑:我想把我的工具栏放在SYSTEM_ALTERT_WINDOW中,就像这里描述的facebook信使泡泡头:Facebook在Android中使用什么API来创建聊天标题?
发布于 2016-03-02 20:50:24
您可以尝试将应用程序上下文包装在ContextThemeWrapper中,以便用从AppCompat扩展而来的主题来装饰裸应用上下文,如下所示:
Context context = new ContextThemeWrapper(getApplicationContext(), R.style.AppTheme);此上下文将提供所有AppCompat属性,以便您可以以编程方式创建小部件。
如果您想使用AppCompat小部件,您必须手动创建它们,例如new AppCompatImageView(...)而不是new ImageView(...)。
此上下文也不提供AppCompat布局充气器,因此框架小部件不会在膨胀时被其AppCompat对应部件自动替换。
发布于 2016-03-02 19:48:17
给你的同学们看看。会设法弄清楚的。
尝试此方法获取上下文getApplicationContext()或activityName.this。
如果你展示一些代码,那就更好了。
https://stackoverflow.com/questions/35756628
复制相似问题