1

这是我的 MainActivity

public class MainActivity extends SherlockActivity implements ActionBar.OnNavigationListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.Theme_Sherlock_Light_DarkActionBar); //Used for theme switching in samples
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Hide title bar
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    //Enable home button
    getSupportActionBar().setHomeButtonEnabled(true);

    //Home as up display
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    //Sliding menu
    SlidingMenu menu = new SlidingMenu(getBaseContext());
    menu.setMode(SlidingMenu.LEFT);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setMenu(R.layout.slide_menu);
}

public boolean onOptionsItemSelected(MenuItem item) {       
    switch (item.getItemId()) {
        case android.R.id.home:
            //should be something in here that makes it slide to the left
            return true;
    }
    return super.onOptionsItemSelected(item);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //Used to put dark icons on light action bar
    //boolean isLight = SampleList.THEME == R.style.Theme_Sherlock_Light;

    menu.add("New")
        .setIcon(R.drawable.contentnew)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

    menu.add("Search")
        .setIcon(R.drawable.actionsearch)
        .setActionView(R.layout.collapsible_edittext)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

    getSupportMenuInflater().inflate(R.menu.main, menu);
    return true;
}
}

我想设置单击主页按钮时,它会向左滑动。问题是,我不能SlidingFragmentActivity像 jfeinstein10 项目中的例子那样扩展,因为我已经扩展了SherlockActivity. 我怎样才能做到这一点?

4

2 回答 2

2

您需要更改 SlidingMenu 代码。使SlidingFragmentActivity扩展SherlockFragmentActivity。然后将 ActionBarSherlock 作为库项目添加到 SlidingMenu。现在您的项目只需将 SlidingMenu 添加为库项目,因为它引用了 ActionBarSherlock。

引自https://github.com/jfeinstein10/SlidingMenu#setup-with-actionbarsherlock

使用 ActionBarSherlock 进行设置

  • 设置如上。
  • 签出 ActionBarSherlock 的干净副本并导入到您的 Eclipse 工作区。
  • 将 ActionBarSherlock 添加为 SlidingMenu 的依赖项
  • 进入您计划使用的 SlidingActivity,使它们扩展Sherlock___Activity而不是___Activity.
于 2013-03-21T11:47:33.637 回答
2

你需要从 SlidingFragmentActivity 扩展,如果你不这样做,你甚至不能调用切换或设置菜单片段。如果你从 SFA 扩展它会是这样的:

case android.R.id.home:
    toggle();
    return true;
于 2013-03-20T23:55:17.107 回答