Search code examples
androidactionbarsherlockslidingmenu

how to use slidingmenu with sherlockActivity?


I want to use SlidingMenu with SherlockActivity. I am not getting exactly how to use it.I am able to integrate both the library i.e.(SlidingMenu and SherlockActionBar).I tried it in the following manner.

public class MainActivity extends SherlockActivity {

private SlidingMenu slidemenu;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
            createSlidingMenu();
}

public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    // TODO Auto-generated method stub
    menu.add("Search")
    .setIcon(android.R.drawable.ic_search_category_default)
    .setActionView(R.layout.collapsible_edittext)
    .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS |  MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

    return true;
}

private void createSlidingMenu() {

    slidemenu = new SlidingMenu(this);
    slidemenu.setShadowDrawable(R.drawable.shadow);
    slidemenu.setShadowWidthRes(R.dimen.shadow_width);
    slidemenu.setFadeDegree(0.35f);
    slidemenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
            slidemenu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
    slidemenu.setMenu(R.layout.sliding_view);
    slidemenu.setSlidingEnabled(true);
}
 }

I am able to show the menu with slide but that menu screen is occupying the whole screen not partial screen.And another issue is I want to show the menu with onclick of button on which is on the top-left corner of the screen.How I can achieve this.


Solution

  • Finally I manage to achieve in the following manner.Changes I did in the Sliding menu library is SlidingActivity extends Activity so I changed it to SherlockActivity and then used in the following manner and it works great.

    For doing this you need to add SherlockAction-Bar library in the SlidingMenu-library.

    public class WhatsUpActivity extends SlidingActivity {
    
        private SlidingMenu slidingMenu;
    
        @Override
      public void onCreate(Bundle savedInstanceState)
      {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.whats_up);
    
        slidingMenu = getSlidingMenu();
        slidingMenu.setMode(SlidingMenu.LEFT);
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        slidingMenu.setShadowWidthRes(R.dimen.shadow_width);
        slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        slidingMenu.setFadeDegree(0.35f);
        setBehindContentView(R.layout.menu_layout); //Menu view left side.
    
        setSlidingActionBarEnabled(true);       
        }
    } 
    

    hope this will be helpful for some one in future :)