Совет: реализация SlidingMenu на Android (Дж. Файнштейн)

У меня проблема (серьезно, я не знаю, как это сделать :D) с реализацией библиотеки SlidingMenu (от Jeremy Feinstein... ссылка dowm) для Android. Есть ли кто-нибудь, кто может помочь мне с процессом внедрения? Я начинаю программист Android, поэтому иногда мне нужна помощь :)

Библиотека — https://github.com/jfeinstein10/SlidingMenu


person Štěpán Víteček    schedule 24.11.2012    source источник


Ответы (3)


Я сам использовал библиотеку Feinstein и решил создать примерное приложение с гибкой и многократно используемой реализацией, насколько я мог себе представить.

Проверьте исходный код на GitHub.

Загрузите приложение прямо на устройство, чтобы попробовать.

Здесь скользящее меню по своему содержанию использует фрагмент списка. Я сделал два подхода. Один, когда данные списка заполняются данными, загруженными из файла XML. Во-вторых, когда данные заполняются из отдельного класса.

Я добавил много комментариев, чтобы легче понять идею. Я надеюсь, что это будет полезно! ;)

person Andrius Baruckis    schedule 18.05.2013
comment
@Andrius Baruckis Эй, я использовал ваш образец проекта, он простой и хороший :) Но я столкнулся с проблемой в исходном коде. Не найден следующий импорт: import com.slidingmenu.lib.SlidingMenu; - person berserk; 10.12.2013
comment
Хорошо, исправлено это xD Но ошибка в getSlidingMenu() Ошибка: метод getSlidingMenu() из типа SlidingMenuInitialiser ссылается на отсутствующий тип SlidingMenu - person berserk; 10.12.2013
comment
Хорошо, исправил все ошибки. XD Я просто удалил оператор импорта и заменил его на исходную библиотеку Feinstein: D - person berserk; 10.12.2013

Создайте Activity, который расширяет SlidingActivity, создайте Fragment для своего меню и в методе onCreate добавьте это:

FrameLayout frameLayout = new FrameLayout(this);
frameLayout.setId(ID_MENUFRAME);
setBehindContentView(frameLayout);
FragmentTransaction ft = getFragmentManager().beginTransaction();
MenuFragment menuFragment = new MenuFragment();
ft.replace(ID_MENUFRAME, menuFragment);
ft.commit();

где ID_MENUFRAME - это целое число, которое не является идентификатором, присутствующим в вашем макете (я установил его равным 1).
Затем, если вы хотите открыть или закрыть меню, вызовите:

getSlidingMenu().toggle();

И вы используете свою деятельность так же, как и любую другую деятельность.
Обратите внимание, что вам придется настроить SlidingMenu программно. Например :

sm.setBehindOffsetRes(R.dimen.slidingMenu_behindOffset);
sm.setShadowWidthRes(R.dimen.slidingMenu_shadowWidth);
sm.setShadowDrawable(R.drawable.slidingmenu_shadow);
person yDelouis    schedule 24.11.2012
comment
Большое спасибо! Надеюсь, это мне обязательно поможет ;-) - person Štěpán Víteček; 25.11.2012
comment
Я сталкиваюсь с ошибками здесь: MenuFragment не может быть преобразован в тип. Есть идеи? - person Ada; 31.12.2012
comment
Вы должны создать свой собственный Fragment и заменить MenuFragment своим собственным фрагментом. - person yDelouis; 02.01.2013

Там есть пример проекта: https://github.com/jfeinstein10/SlidingMenu/tree/master/example

Просто импортируйте его в Eclipse.

person AlikElzin-kilaka    schedule 10.12.2012