toggle() когда кнопка home нажимает на скользящее меню с помощью actionbarsherlock
Вот мой 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
, Как я могу достичь этого?
2 ответа
Вам нужно внести изменения в код SlidingMenu. Делать SlidingFragmentActivity
простираться SherlockFragmentActivity
, Затем добавьте ActionBarSherlock в качестве проекта библиотеки в SlidingMenu. Теперь вашему проекту нужно только добавить SlidingMenu как библиотечный проект, потому что он ссылается на ActionBarSherlock.
Цитируется с https://github.com/jfeinstein10/SlidingMenu:
Настройка с помощью ActionBarSherlock
- Настройте, как указано выше.
- Получите чистую копию ActionBarSherlock и импортируйте ее в свое рабочее пространство Eclipse.
- Добавить ActionBarSherlock в качестве зависимости от SlidingMenu
- Зайдите в SlidingActivities, которые вы планируете использовать, чтобы расширить их
Sherlock___Activity
вместо___Activity
,
Вам необходимо расширить от SlidingFragmentActivity. Если вы этого не сделаете, вы не сможете даже вызвать переключение или установить фрагмент меню. Если вы расширили SFA, это будет примерно так:
case android.R.id.home:
toggle();
return true;