UPDATE
我没有提到将ToolBar与ActionBaractivity一起使用的任何内容.这就是我总是得到空指针异常的原因.对于那些面临同样问题please refere this answer的人
我有这个片段代码来更改片段时更改支持 *** 作栏的外观.
@OverrIDe public voID onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setHasOptionsMenu(true); mActionbar = ((ActionBaractivity)getActivity()).getSupportActionbar(); SpannableString s = new SpannableString("Dashboard"); s.setSpan(new ForegroundcolorSpan(getResources().getcolor(R.color.app_blue_text)), 0, s.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); s.setSpan(new TypefaceSpan(getActivity(), "Optima-Regular.ttf"), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); if( null!= mActionbar){ mActionbar.setElevation(0); mActionbar.setTitle(s); } }
我已经提到了有关如何解决此错误的先前/类似问题.这些解决方案建议在onActivityCreated()方法中更改 *** 作栏外观.我也试过onAttach().似乎没有工作.我使用了支持 *** 作栏来保持向后兼容性.活动也相应地转换为ActionBaractivity.
完整的代码非常冗长,所以我跳过了它.如果需要,我可以发布完整的代码并更新问题以及更多细节.
错误日志
Caused by: java.lang.NullPointerException at com.example.testapp.fragments.NavigationDrawerFragment.onActivityCreated(NavigationDrawerFragment.java:215)
第215行是:mActionbar.setElevation(0);
解决方法:
我错过了在这个问题中提及的更多信息.这就是其他优秀的SO用户无法正确回答的原因.所以我在这里自己回答.
我用ToolBar代替了常规的Actionbar.使用Toolbar时,必须将其设置为Actionbar.所以做 –
toolbar = (Toolbar) getActivity().findVIEwByID(toolbarID);((ActionBaractivity)getActivity()).setSupportActionbar(toolbar);
之后我可以轻松改变标题和外观 –
((ActionBaractivity)getActivity()).getSupportActionbar().setTitle(s);
只需记住在实际使用片段中的 *** 作栏之前将工具栏设置为 *** 作栏.
总结以上是内存溢出为你收集整理的android getSupportActionBar()在片段中返回null全部内容,希望文章能够帮你解决android getSupportActionBar()在片段中返回null所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)