我正在使用ActionBarRTLizer使Home Button
和MenuItem
从右到左而不是从左到右,并且它在MainActivity
中工作,并且一切都很好,除了打开时使用Fragment
的Fragment 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);之后;在里面