Crouton + SlidingMenu перекрываются

Я использую как SlidingMenu, так и Crouton, но я обнаружил, что скользящее меню перекрывается с уведомлением о crouton

гренки и скользящее меню перекрываются

Я бы сообщил о проблеме в github, но я не знаю, где ошибка.

Сирил Моттье упоминает в своей статье о встроенных уведомлениях о существовании трех контекстов, левое меню, имеющее собственный контекст. Таким образом, уведомление скользит вместе с остальным содержимым.

введите здесь описание изображения

Поскольку и SlidingMenu, и Crouton используют контекст действия, возможно, это просто невозможно исправить. Мы можем легко позвонить

Crouton.cancelAllCroutons();

перед отображением SlidingMenu, но мне нравится функция выдвижения Prixing.

Надеюсь, авторы библиотеки смогут заявить об ошибке или пролить свет на нее.

Спасибо!

РЕДАКТИРОВАТЬ:

Я использую SlidingMenu, создавая объект и присоединяя его к действию.

private void configureSideMenu() {
   mSlidingMenu = new SlidingMenu(this);
   mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
   mSlidingMenu.setFadeDegree(0.35f);
   mSlidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
   mSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
   mSlidingMenu.setMenu(R.layout.menu_frame);
   getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame, new MySideMenuFragment()).commit();
 }

И Крутон, я думаю, есть только один способ его использовать.

  Crouton.showText(this, R.string.error_not_logged_in, Style.ALERT);

Где это — одно и то же действие для обоих случаев.


person Maragues    schedule 15.03.2013    source источник
comment
Как вы создаете SlidingMenu и отображаете Crouton? Я расширяю SlidingActivity, и у меня нет этой проблемы.   -  person Nachi    schedule 19.03.2013
comment
@Nachi, спасибо, см. обновленный вопрос. Возможно, если бы я расширил SlidingActivity, это решило бы проблему... Я попробую, и если это исправит, я сообщу об ошибке в проекте SlidingMenu, так как я не помню, чтобы читал, что были различия в использовании библиотека так или иначе (возможно я ошибаюсь и она указана)   -  person Maragues    schedule 19.03.2013


Ответы (1)


Вы можете легко прикрепить Crouton к определенному ViewGroup.

Все, что вам нужно сделать, это позвонить Crouton.makeText(Activity, CharSequence, Style, ViewGroup), Crouton.make(...) или Crouton.show(...).

Затем созданный Crouton прикрепляется к ViewGroup и выдвигается вместе со своим родителем, когда SlidingMenu открывается.

Итак, когда вы создаете Crouton из Fragment

Crouton.showText(this, R.string.error_not_logged_in, Style.ALERT, (ViewGroup) getView());

В противном случае вы можете добавить его к любому ViewGroup (даже по идентификатору ресурса), хотя я рекомендую иметь FrameLayout для присоединения Crouton.

person keyboardsurfer    schedule 22.03.2013
comment
Спасибо! Я успешно реализовал ваше решение, но чтобы распространить его на все мои экраны, мне пришлось бы просмотреть каждый .xml и добавить дополнительный вид вверху, что звучит очень плохо и трудно поддерживать: -/Просто прикрепив его к содержимое [(ViewGroup) mSlidingMenu.getContent()] учитывает свойства гравитации макета, поэтому гренок может оказаться в центре экрана. В любом случае, большое спасибо за библиотеку и за ваше время. - person Maragues; 22.03.2013