![](/img/trans.png)
[英]How to hide ActionBar but still show Navigation menu icon on top left
[英]How do I make the left menu out by clicking the actionbar Icon?
我尝试将Jeremy库与ActionBarSherlock结合使用。
在xml上的示例中,我创建了一个ImageButton
,然后在ActionBar
右上角放置了一个“设置”图像。 所以我想要的是,当用户将应用程序向右滑动时,将出现一个设置菜单,或者当用户单击“设置”图像时,该菜单就会出来。 我可以向右滑动来显示菜单,但是当我单击“设置”图像时无法执行菜单。 我怎么做?。
我有一个动作栏自定义XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal" >
<ImageView
android:id="@+id/BackImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/abc" />
<ImageButton
android:id="@+id/BtnSetting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/setting"
android:background="@android:color/transparent"/>
<ImageButton
android:id="@+id/BtnMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/menu"
android:background="@android:color/transparent"/>
</RelativeLayout>
我的主要活动
public class MainActivity extends SlidingFragmentActivity {
private void showActionBar() {
LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.ab_custom, null);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled (false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(v);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
showActionBar();
setContentView(R.layout.activity_main);
setBehindContentView(R.layout.menu_leftcontainer);
SlidingMenu menu = getSlidingMenu();
menu.setMode(SlidingMenu.LEFT_RIGHT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setFadeDegree(0.35f);
menu.setBehindOffset(200);
menu.setShadowDrawable(R.drawable.shadow);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.fragment_menu_container, new LeftMenuFragment());
ft.commit();
menu.setSecondaryMenu(R.layout.menu_rightcontainer);
menu.setSecondaryShadowDrawable(R.drawable.shadow);
FragmentTransaction ft1 = getSupportFragmentManager().beginTransaction();
ft1.add(R.id.fragment_menu_container1, new RightMenuFragment());
ft1.commit();
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case R.id.BtnMenu:
if(menu.isMenuShowing())
{ menu.showContent(); }
else
{
menu.showMenu();
}
return true;
case R.id.BtnSetting:
if(menu.isMenuShowing())
{ menu.showContent(); }
else
{
menu.showMenu();
}
return true;
}
return super.onOptionsItemSelected(item);
}
}
我的LeftMenuFragment
public class LeftMenuFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.leftmenu, container, false);
}
}
因此,当我运行我的应用程序时,我可以左右滑动它以弹出菜单,但是当我单击ActionBar
上的图标时菜单没有弹出,任何人都可以教我如何通过单击菜单来弹出菜单图标,以及菜单退出后如何再次单击该菜单来隐藏菜单?
使用此lib创建滑动菜单。 https://github.com/jfeinstein10/SlidingMenu
对于操作栏主页按钮,请单击:
设置supportActionBar.setHomeButtonEnabled(true);`
覆盖onMenuItemSelected方法
public boolean onMenuItemSelected(int featureId, MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case android.R.id.home:
(menu.isMenuShowing()) { menu.showContent(); } else { menu.showMenu(); }
}
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.