0

I am starting with Sliding Menu from SlideMenu. I have tried a sample and it works great but when menu is shown, Touch on right pane or left to right swipe closes the Sliding Menu.

I need the Sliding menu to be closed only on right to left swipe or may be on touch. I don't want left to right swipe to close the menu. How to handle above 3 case explicitly?

public class MainActivity extends SherlockFragmentActivity {

SlidingMenu menu;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTheme(com.actionbarsherlock.R.style.Theme_Sherlock_Light);
    setContentView(R.layout.activity_main);
    menu = new SlidingMenu(this);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setMode(SlidingMenu.LEFT);
    menu.setShadowWidth(5);
    menu.setFadeDegree(0.0f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setBehindWidth(200);
    menu.setMenu(R.layout.menulayout);
    ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    getSupportMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        menu.toggle();
    }

    return true;
}
}
Siddhesh
  • 1,370
  • 11
  • 28
bhalaji
  • 119
  • 1
  • 9

1 Answers1

0

Your error is on:

public boolean onOptionsItemSelected(MenuItem item) 
{       
    switch (item.getItemId()) 
    {
        case android.R.id.home:
            SlidingMenu menu = getSlidingMenu();
            menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
            menu.toggle();
            return true;
    }

    return super.onOptionsItemSelected(item);
}

Checkout this answer also:

Strange offset behavior on slidingmenu

Community
  • 1
  • 1
Marckaraujo
  • 7,422
  • 11
  • 59
  • 97