我正在创建一个带有应用程序的片段,每个片段具有不同的动作栏和图标样式,我们如何在这些片段上实现
我已经在MainActivity类上创建了操作栏,但是该操作栏将显示在所有片段上。
除了操作栏上的我更改了每个片段的样式和图标
我的应用程序主要活动如下所示。它的中心有应用程序徽标,导航抽屉中有一些片段,可以将应用程序徽标更改为应用程序页面名称 [] 第二张图片是我的片段,因此操作栏导航抽屉更改为“后退”按钮,操作栏图标也更改为
答案 0 :(得分:1)
处理操作栏的最佳方法是,您只需在“主要”活动中设置一个操作栏即可。
从片段中,您可以访问主要活动,并且可以根据片段从片段中更改操作栏。如下所示:
((MainActivity)getActivity()).ChangeActionbar();
您可以在Main活动中创建各种方法来根据您的使用更改操作栏。因此,您只需要从ChangeActionbar()
之类的片段中调用这些方法即可。
但是,为此,您必须注意反向按下事件,因为如果您当时要返回,则必须设置先前的片段操作栏,以便最好的处理方法是添加代码以更改操作onResume()
方法中的竖线。因为打开片段时会调用onResume()
方法。
希望!这会帮助您。
快乐的编码...
答案 1 :(得分:0)
更改主活动中的标题和徽标写方法,如下所示:
public void fontToTitleBar(String title,int logo) {
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/av_Medium.ttf");
title = "<font color='#ffffff'>" + title + "</font>";
SpannableString s = new SpannableString(title);
s.setSpan(font, 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
toolbar.setTitle(Html.fromHtml(String.valueOf(s), Html.FROM_HTML_MODE_LEGACY));
} else {
toolbar.setTitle((Html.fromHtml(String.valueOf(s))));
}
toolbar.setLogo(logo);
}
然后您可以通过getActivity()
从片段中调用此方法来更改标题
像:((MainActivity) getActivity()).fontToTitleBar("title",r.drawable.icon);
用于片段覆盖onCreateOptionsMenu()
中的更改菜单并展开新菜单,并在片段的setHasOptionsMenu(true);
方法中设置onCreate()
。
您也可以使用onOptionItemSelected
方法处理片段中的单击菜单。