2013-02-16 202 views
12

我正在尝试在Facebook应用程序中使滑动菜单类似于滑动菜单。我浏览了许多问题like this amazing one here。 ,并发现了很多图书馆,但他们都从不同的左侧滑动到右侧或从右向左滑动。我想通过顶部栏中的两个按钮使它从两侧,从左到右,从右到左滑动。谁能帮我这个。左右滑动的Android滑动菜单

在此先感谢。

+0

看看这一个http:// stackoverflow。com/questions/17363082/how-to-android-slide-menu-that-slide-from-both-sides-left-and-right – sonida 2013-06-28 10:55:34

+0

你可以看看https://github.com/Ali-Rezaei/SlidingDrawer,这可以让你从任何一边滑下来。 – Ali 2015-06-13 19:29:19

回答

18

这是我使用的一个,准确地你想要做什么:

SlidingMenu

你将不得不实行按钮功能自己,但它不应该是太辛苦了!

编辑:

一个例子:

SlidingMenu menuS = new SlidingMenu(this); 
menuS.setMode(SlidingMenu.LEFT_RIGHT); 
menuS.setMenu(R.layout.slideout_list); 
menuS.setSecondaryMenu(R.layout.slideout_list2); 

由于代码显示你需要将模式设置为LEFT_RIGHT和必须同时在左侧菜单中指定一个布局(的SetMenu())和右菜单(setSecondaryMenu()),与其他选项指定菜单大小和阴影等

+1

非常感谢。演示包含我想要的。 – 2013-02-16 10:42:29

+0

加州你请建议我如何从左到右的工作和从右到左的同一个应用程序..完全像Facebook ...? – 2013-07-26 08:28:54

+0

但它只从左侧打开滑块而不是从右侧。请为它建议 – 2015-09-02 10:19:39

4

沿有一个从右至左滑动jfeinstein的SlidingMenu original这里的菜单中选择一个分支: https://github.com/jfeinstein10/SlidingMenu/tree/slidingright

另外,还有是具有简单的配置,从使开关西蒙的实现左到右从右到左这里:https://github.com/SimonVT/android-menudrawer。网页上有一个简单的例子。

虽然我不是一个公开发表意见的人,但我发现Simon的图书馆使用起来更容易一些。 ;-)

话虽这么说,我不知道,但是,带走绝对任何信贷从jfeinstein无论是。他的图书馆为我的更好的应用程序销售应用程序。 :-)

+0

看看这一个http://stackoverflow.com/questions/17363082/how-to-android-slide-menu-that-slide-从左右两侧开始 – sonida 2013-06-28 10:55:13

3

使用这一个,这是对你有好处:

abstract public class BaseSlideFragmentActivity extends SlidingFragmentActivity implements IActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    Utils.log(new Exception(), "[onCreate]"); 
    super.onCreate(savedInstanceState); 

    getSlidingMenu().setMode(SlidingMenu.LEFT_RIGHT); 
    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 

    setBehindContentView(R.layout.menu_right); 
    getSupportFragmentManager().beginTransaction().replace(R.id.menuRight, new MenuRightFragment()).commit(); 

    getSlidingMenu().setSecondaryMenu(R.layout.menu_left); 
    getSupportFragmentManager().beginTransaction().replace(R.id.menuLeft, new MenuLeftFragment()).commit(); 

    getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width); 
    getSlidingMenu().setBehindOffsetRes(R.dimen.slidingmenu_offset); 
    getSlidingMenu().setFadeDegree(0.35f); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    setSlidingActionBarEnabled(false); 
} 

public Activity getActivity() { 
    return this; 
} 

@Override 
public MyApplication getApplicationContext() { 
    return (MyApplication) super.getApplicationContext(); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    Utils.log(new Exception(), "[onOptionsItemSelected]"); 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      toggle(); 
      return true; 
     case R.id.setting: 
      if (getSlidingMenu().isMenuShowing()) { 
       toggle(); 
      } 
      else { 
       showSecondaryMenu(); 
      } 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    Utils.log(new Exception(), "[onCreateOptionsMenu]"); 
    getSupportMenuInflater().inflate(R.menu.menu_setting, menu); 
    return true; 
} 

}

+0

不错!这工作... – 2013-07-09 11:34:58

0
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // setTitle(R.string.attach); 
     // set the content view 
     setContentView(R.layout.activity_main); 

     // configure the Sliding right Menu 
     SlidingMenu menuR = new SlidingMenu(this); 
     menuR.setMode(SlidingMenu.RIGHT); 
     menuR.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); 



    //  menuR.setShadowWidthRes(R.dimen.abc_action_bar_default_height); 

    // menu.setShadowDrawable(R.drawable.shadow);right menu 
     menuR.setBehindOffsetRes(R.dimen.abc_action_bar_default_height); 
     menuR.setFadeDegree(0.35f); 
     menuR.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
     menuR.setMenu(R.layout.right_menu_layout); 


     // configure the Sliding left Menu 
     SlidingMenu menuL = new SlidingMenu(this); 
     menuL.setMode(SlidingMenu.LEFT); 
     menuL.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); 


    //  menuL.setShadowWidthRes(R.dimen.abc_action_bar_default_height); 

    // menu.setShadowDrawable(R.drawable.shadow);left menu 
     menuL.setBehindOffsetRes(R.dimen.abc_action_bar_default_height); 
     menuL.setFadeDegree(0.35f); 
     menuL.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
     menuL.setMenu(R.layout.left_menu_layout); 


    } 
+0

你可以修复你的格式吗?你的一些缩进是关闭的。 – skrrgwasme 2014-10-09 16:21:41