如何在片段中更改操作栏和操作栏图标

时间:2019-01-01 05:23:34

标签: android

我正在创建一个带有应用程序的片段,每个片段具有不同的动作栏和图标样式,我们如何在这些片段上实现

我已经在MainActivity类上创建了操作栏,但是该操作栏将显示在所有片段上。

除了操作栏上的我更改了每个片段的样式和图标

我的应用程序主要活动如下所示。它的中心有应用程序徽标,导航抽屉中有一些片段,可以将应用程序徽标更改为应用程序页面名称 [enter image description here] 第二张图片是我的片段,因此操作栏导航抽屉更改为“后退”按钮,操作栏图标也更改为

enter image description here

2 个答案:

答案 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方法处理片段中的单击菜单。