我正在使用ActionBarRTLizer使Home ButtonMenuItem从右到左而不是从左到右,并且它在MainActivity中工作,并且一切都很好,除了打开时使用FragmentFragment Transaction,ActionBar返回其默认状态(LTR)。

所以我试图在片段中@Override onPrepareOptionsMenu(),但是没有用。 ActionBar刚刚搞砸了。

有人知道如何处理吗?

提前致谢

编辑:

这是MainActivity中的onCreateOptionsMenu

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.main, menu);

        ActionBarRtlizer rtlizer = new ActionBarRtlizer(this);
        ViewGroup homeView = (ViewGroup) rtlizer.getHomeView();

        RtlizeEverything.rtlize(rtlizer.getActionBarView());

        if (rtlizer.getHomeViewContainer() instanceof ViewGroup) {
            RtlizeEverything.rtlize((ViewGroup) rtlizer.getHomeViewContainer());
        }

        RtlizeEverything.rtlize(homeView);
        rtlizer.flipActionBarUpIconIfAvailable(homeView);

        return true;
    }


这是片段中的onPrepareOptionsMenu重写:

@Override
    public void onPrepareOptionsMenu(Menu menu) {
        getActivity().getMenuInflater().inflate(R.menu.main, menu);
        ActionBarRtlizer rtlizer = new ActionBarRtlizer(getActivity());
        ViewGroup homeView = (ViewGroup) rtlizer.getHomeView();

        RtlizeEverything.rtlize(rtlizer.getActionBarView());

        if (rtlizer.getHomeViewContainer() instanceof ViewGroup) {
            RtlizeEverything.rtlize((ViewGroup) rtlizer.getHomeViewContainer());
        }

        RtlizeEverything.rtlize(homeView);
        rtlizer.flipActionBarUpIconIfAvailable(homeView);
        if(radioPlayer.isPlaying()){
            menu.findItem(R.id.action_live_stream).setIcon(R.drawable.ic_action_stop);
        }
    }




这是我打开一个片段后:

最佳答案

请尝试覆盖onPrepareOptionsMenu并将所有代码行放在getMenuInflater()。inflate(R.menu.main,menu);之后;在里面

09-06 05:57