2013-04-22 32 views
1

我想用SlidingMenuSherlockActivity。我没有准确地知道如何使用它。我能够整合两个库,即(SlidingMenu and SherlockActionBar)。我尝试了以下方式。如何使用sherlockActivity的slidingmenu?

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); 
} 
} 

我能够显示出与滑动菜单但菜单屏幕占据整个屏幕不偏screen.And另一个问题是我想要显示的菜单与按钮的onclick上这是对顶屏幕左下角。我可以如何实现这一点。

回答

0

最后我管理下manner.Changes我在滑动菜单库没有实现的是SlidingActivity扩展Activity,所以我把它改成SherlockActivity,然后在下面的方式使用它的伟大工程。

为此,您需要在SlidingMenu-library中添加SherlockAction-Bar库。

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);  
    } 
} 

希望这将是一个有些未来:)

+0

非常感谢。这是有帮助的 – 2013-12-24 17:30:50

+0

@COLDICE wel come buddy :) – Akshay 2013-12-26 05:20:17

1

我已经使用这个库的这个库https://github.com/SimonVT/android-menudrawer/检查样本,我还用actionbarsherlock

enter image description here

代码如下...

package com.example.slider; 

import net.simonvt.menudrawer.MenuDrawer; 
import android.os.Build; 
import android.os.Bundle; 
import android.widget.TextView; 

import com.actionbarsherlock.app.SherlockActivity; 
import com.actionbarsherlock.view.Menu; 
import com.actionbarsherlock.view.MenuItem; 

public class MainActivity extends SherlockActivity { 

    private static final String STATE_MENUDRAWER = "net.simonvt.menudrawer.samples.WindowSample.menuDrawer"; 
    private static final String STATE_ACTIVE_VIEW_ID = "net.simonvt.menudrawer.samples.WindowSample.activeViewId"; 

    private MenuDrawer mMenuDrawer; 
    private TextView mContentTextView; 

    private int mActiveViewId; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     if (savedInstanceState != null) { 
      mActiveViewId = savedInstanceState.getInt(STATE_ACTIVE_VIEW_ID); 
     } 

     mMenuDrawer = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_WINDOW); 
     // mMenuDrawer.setContentView(R.layout.activity_windowsample); 
     mMenuDrawer.setMenuView(R.layout.menu_scrollview); 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getSupportMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    protected void onRestoreInstanceState(Bundle inState) { 
     super.onRestoreInstanceState(inState); 
     mMenuDrawer.restoreState(inState.getParcelable(STATE_MENUDRAWER)); 
    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putParcelable(STATE_MENUDRAWER, mMenuDrawer.saveState()); 
     outState.putInt(STATE_ACTIVE_VIEW_ID, mActiveViewId); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
     case android.R.id.home: 
      mMenuDrawer.toggleMenu(); 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public void onBackPressed() { 
     final int drawerState = mMenuDrawer.getDrawerState(); 
     if (drawerState == MenuDrawer.STATE_OPEN 
       || drawerState == MenuDrawer.STATE_OPENING) { 
      mMenuDrawer.closeMenu(); 
      return; 
     } 

     super.onBackPressed(); 
    } 

} 

不forgate在您的活动中的Android清单文件中设置主题

<activity 
      android:name="com.example.slider.MainActivity" 
      android:theme="@style/Theme.Sherlock.Light" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
+2

@Dharwal Sodha我用同样的库帮助,但我没有得到的'MenuDrawer' class.Can实例请你告诉我发生什么事成为问题。 – Akshay 2013-04-22 10:08:21

+0

@Akshay他已经使用[android-menudrawer](https://github.com/SimonVT/android-menudrawer) – VenomVendor 2013-08-13 08:16:17

相关问题