toggle(), когато началният бутон щракне върху плъзгащото се меню с actionbarsherlock

Ето моята основна дейност

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. Как мога да постигна това?


person laph    schedule 20.03.2013    source източник


Отговори (2)


Трябва да направите промяна в кода на SlidingMenu. Направете SlidingFragmentActivity разширение SherlockFragmentActivity. След това добавете ActionBarSherlock като проект на библиотека към SlidingMenu. Сега вашият проект трябва само да добави SlidingMenu като проект на библиотека, защото това препраща към ActionBarSherlock.

Цитирано от https://github.com/jfeinstein10/SlidingMenu#setup-with-actionbarsherlock:

Настройка с ActionBarSherlock

  • Настройте както по-горе.
  • Купете чисто копие на ActionBarSherlock и импортирайте във вашето работно пространство на Eclipse.
  • Добавете ActionBarSherlock като зависимост към SlidingMenu
  • Влезте в SlidingActivities, които планирате да използвате, накарайте ги да разширят Sherlock___Activity вместо ___Activity.
person Matthias Robbers    schedule 21.03.2013
comment
Благодаря, това работи за мен. Просто искам да е ясно за всеки, който има същия проблем, в SherlockFragmentActivity.java (библиотека с плъзгащи се менюта) променете public class SlidingFragmentActivity extends SlidingActivity implements SlidingActivityBase { на public class SlidingFragmentActivity extends SherlockFragmentActivity implements SlidingActivityBase { - person laph; 21.03.2013

Трябва да разширите от SlidingFragmentActivity, ако не го направите, дори не можете да извикате превключване или да зададете фрагмента на менюто. Ако сте разширили от SFA, ще бъде нещо подобно:

case android.R.id.home:
    toggle();
    return true;
person BigBen3216    schedule 20.03.2013
comment
Ако разширя SlidingFragmentActivity, как мога да използвам sherlock actionbar? - person laph; 21.03.2013
comment
Просто повторете въпроса ми, какво ще стане, ако не удължа SlidingFragmentActivity, как мога да постигна това? - person laph; 21.03.2013