Меню слайдов Android, которые скользят с обеих сторон влево и вправо
Я пытаюсь сделать скользящее меню ящиков, как в приложении Facebook. Я переместил много вопросов как этот удивительный здесь.
и нашел много библиотек, но все они скользят слева направо или справа налево в другом. Я хочу, чтобы он скользил с двух сторон, слева направо и направо налево с помощью двух кнопок в верхней панели. Может ли кто-нибудь помочь мне в этом.
Спасибо заранее.
Ответы
Ответ 1
это тот, который я использую и выполняю именно то, что вы хотите:
SlidingMenu
Вам нужно будет реализовать функцию кнопки самостоятельно, но это не должно быть слишком сложно!
EDIT:
Пример:
SlidingMenu menuS = new SlidingMenu(this);
menuS.setMode(SlidingMenu.LEFT_RIGHT);
menuS.setMenu(R.layout.slideout_list);
menuS.setSecondaryMenu(R.layout.slideout_list2);
Как показывает код, вам нужно установить режим в LEFT_RIGHT и указать макет как для левого меню (setMenu()), так и для правого меню (setSecondaryMenu()), а также других параметров, определяющих размер и тени меню и т.д..
Ответ 2
Попробуйте это
https://github.com/srikanthgr/FacebookSlideOutmenu
реализовать это в своем проекте, это именно то, что вы хотите.
Ответ 3
Существует ветка для скользящего меню справа налево в jfeinstein SlidingMenu original здесь:
https://github.com/jfeinstein10/SlidingMenu/tree/slidingright
В качестве альтернативы существует реализация Simon, которая имеет простые конфигурации для перехода от слева направо и справа налево здесь: https://github.com/SimonVT/android-menudrawer. На странице есть простой пример.
Хотя, я не из тех, кто публично высказывает мнение, я считаю, что библиотеку Саймона легче использовать.; -)
Тем не менее, я не могу отнять абсолютно любой кредит от jfeinstein. Его библиотека поддерживает одно из моих лучших приложений для продажи.: -)
Ответ 4
Используйте это, это полезно для вас:
abstract public class BaseSlideFragmentActivity extends SlidingFragmentActivity implements IActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
Utils.log(new Exception(), "[onCreate]");
super.onCreate(savedInstanceState);
getSlidingMenu().setMode(SlidingMenu.LEFT_RIGHT);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
setBehindContentView(R.layout.menu_right);
getSupportFragmentManager().beginTransaction().replace(R.id.menuRight, new MenuRightFragment()).commit();
getSlidingMenu().setSecondaryMenu(R.layout.menu_left);
getSupportFragmentManager().beginTransaction().replace(R.id.menuLeft, new MenuLeftFragment()).commit();
getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
getSlidingMenu().setBehindOffsetRes(R.dimen.slidingmenu_offset);
getSlidingMenu().setFadeDegree(0.35f);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setSlidingActionBarEnabled(false);
}
public Activity getActivity() {
return this;
}
@Override
public MyApplication getApplicationContext() {
return (MyApplication) super.getApplicationContext();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Utils.log(new Exception(), "[onOptionsItemSelected]");
switch (item.getItemId()) {
case android.R.id.home:
toggle();
return true;
case R.id.setting:
if (getSlidingMenu().isMenuShowing()) {
toggle();
}
else {
showSecondaryMenu();
}
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Utils.log(new Exception(), "[onCreateOptionsMenu]");
getSupportMenuInflater().inflate(R.menu.menu_setting, menu);
return true;
}
}
Ответ 5
Этот вопрос сейчас очень старый, но теперь он встроен в Android. Поэтому, если люди ищут и сталкиваются с этим сообщением, перейдите в раздел "Навигационный ящик" на страницах разработчиков Android.
http://developer.android.com/design/patterns/navigation-drawer.html
Ответ 6
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setTitle(R.string.attach);
// set the content view
setContentView(R.layout.activity_main);
// configure the Sliding right Menu
SlidingMenu menuR = new SlidingMenu(this);
menuR.setMode(SlidingMenu.RIGHT);
menuR.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
// menuR.setShadowWidthRes(R.dimen.abc_action_bar_default_height);
// menu.setShadowDrawable(R.drawable.shadow);right menu
menuR.setBehindOffsetRes(R.dimen.abc_action_bar_default_height);
menuR.setFadeDegree(0.35f);
menuR.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
menuR.setMenu(R.layout.right_menu_layout);
// configure the Sliding left Menu
SlidingMenu menuL = new SlidingMenu(this);
menuL.setMode(SlidingMenu.LEFT);
menuL.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
// menuL.setShadowWidthRes(R.dimen.abc_action_bar_default_height);
// menu.setShadowDrawable(R.drawable.shadow);left menu
menuL.setBehindOffsetRes(R.dimen.abc_action_bar_default_height);
menuL.setFadeDegree(0.35f);
menuL.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
menuL.setMenu(R.layout.left_menu_layout);
}