2013-03-20 4 views
1

Вот мой MainActivityпереключатель() при нажатии кнопки домой нажмите на slidingmenu с 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. Как я могу достичь этого?

ответ

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.
+0

Спасибо, что работает для меня. Просто хочу быть понятным для тех, кто имеет ту же проблему, в 'SherlockFragmentActivity.java' (библиотека сменного слайда) change' public class SlidingFragmentActivity extends SlidingActivity реализует SlidingActivityBase {'to' public class SlidingFragmentActivity extends SherlockFragmentActivity реализует SlidingActivityBase {' – laph

2

Вы должны простираться от SlidingFragmentActivity, если вы не сделать это вы не можете даже назвать переключатель или установить в меню fragment.If вы простиралась от SFA было бы что-то вроде этого:

case android.R.id.home: 
    toggle(); 
    return true; 
+0

Если я расширяю 'SlidingFragmentActivity', как я могу использовать панель действий sherlock? – laph

+0

Вы просто повторяете мой вопрос, что, если я не расширю 'SlidingFragmentActivity', как я могу это достичь? – laph

Смежные вопросы