Android:RTL ActionBar 菜单项
Android: RTL ActionBar Menu Items
我正在使用 ActionBarRTLizer 使 Home Button
和 MenuItem
从右到左而不是从左到右,我让它在 MainActivity
一切都很好,除了当我使用 Fragment Transaction
打开 Fragment
时 ActionBar returns 到它的默认状态(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); 之后在其中
我正在使用 ActionBarRTLizer 使 Home Button
和 MenuItem
从右到左而不是从左到右,我让它在 MainActivity
一切都很好,除了当我使用 Fragment Transaction
打开 Fragment
时 ActionBar returns 到它的默认状态(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); 之后在其中