2015-07-12 2 views
0

У меня проблема с использованием Clans FloatingActionButton. Мне нужно добавить прозрачный слой, который блокирует родительский слой. Эффект, который мне нужен, похож на Google Inbox. Так что в моем примере я эту последовательность: 1) Нажмите пункт 3FAB прозрачный слой не блокирует родительский слой

enter image description here

2) Нажмите на потрясающий

enter image description here

3) Когда я нажимаю над прозрачным слоем, элемент из списка ListView.

enter image description here

Я стараюсь, чтобы заблокировать прозрачный слой событий нажмите с помощью:

final FloatingActionMenu menu1 = (FloatingActionMenu) findViewById(R.id.menu1); 
menu1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     menu1.close(true); 
    } 
}); 

Так что с этим кодом, когда я нажимаю прозрачный слой ФАБ меню закрывается (это нормально), но тот же самый прослушиватель кликов, блокирующий событие click над списком. Я пробовал разные способы решения этой проблемы, но единственным способом, который я нашел, было изменение размера программного обеспечения. Это нехорошее решение, потому что эффект не очень хорош.

Через несколько часов я загружу демо-версию и исходный код в github, но даже надеюсь, кто-то может помочь мне с некоторой идеей. Спасибо

EDITED

+0

Я действительно не понимаю вас, ваши слушатели щелчков блокируются, когда появляется всплывающее окно? – Elltz

+0

Когда щелкнули fab, открывается меню fab, поэтому отображаются кнопки fab и прозрачный слой, и когда я нажимаю этот слой, на самом деле щелчок делается в списке. –

ответ

2

У меня есть загрузить проект с Github и попытался код сам и решил проблему.

Он отлично работает для меня, как показано в приложении «Входящие» Google. Вам просто нужно изменить очень небольшую часть вашего кода.

menu1.setOnMenuToggleListener(new FloatingActionMenu.OnMenuToggleListener() { 
      @Override 
      public void onMenuToggle(boolean opened) { 
       if (opened) { 
        menu1.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          menu1.close(true); 
          menu1.setClickable(false); 
         } 
        }); 
       } else { 
        Toast.makeText(getApplicationContext(), "Close", Toast.LENGTH_SHORT).show(); 

       } 
      } 
     }); 

Надеюсь, что смогу вам помочь.

+0

Спасибо, но не работает, слой меню fab блокирует событие click над списком. Если возможно, попробуйте увидеть эффект в [Inbox App] (https://play.google.com/store/apps/details?id=com.google.android.apps.inbox), мне нужно то же самое эффект на моей фабрике. Извините за мой английский, может быть, я не объясню проблему должным образом. –

+0

Да, это именно то, что я вам сказал. Я также сделал то же самое в одном из моих приложений. Пожалуйста, разместите свой код, где вы внесли изменения, которые я вам сказал. –

+0

Пожалуйста, см. Эту [ссылку на мой github repo] (https://github.com/gastoncesarf/Fab-example). Также я редактировал свой пост. Спасибо –