2015-10-01 3 views
2

Я использую Floating Action Button. Я использую эту библиотеку, потому что мне нужен стиль inbox style fab. Проблема в том, что я могу закрыть меню с плавающим действием только при нажатии нижней панели. Мне нужно, если я щелкнув в другом месте на экране, тогда также fab должно свернуть, как это происходит в приложении Inbox. Как добиться такого поведения? Есть ли какие-либо атрибуты в этой библиотеке, которые я могу использовать, или мне нужно реализовать это поведение самостоятельно?Как скрыть fab при нажатии в любом месте экрана?

+0

Почему бы не установить его видимость Visibity.GONE? Вы можете добавить это к поведению onClick чего-либо в этом представлении. – mgokgoz

ответ

9

В библиотеке есть метод setClosedOnTouchOutside(boolean close), который вы можете использовать.

floatingActionMenu.setClosedOnTouchOutside(true); 
1

Если вы используете compile 'com.getbase:floatingactionbutton:1.8.0'

и плавающие действия меню и хотите, чтобы закрыть меню после нажатия в любом месте на экране попробовать этот

floatingActionsMenu = (FloatingActionsMenu) findViewById (R.id.fab_menu) ;

listView.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View view, MotionEvent motionEvent) { 
     if (floatingActionsMenu.isExpanded()) 
      floatingActionsMenu.collapse(); 
     return false; 
    } 
}); 

< лжи - делает вид, чтобы продолжить прокрутку решения

+0

Не могли бы вы объяснить, что здесь "listView"? –

1

MISHO Жгенти для использования compile 'com.getbase:floatingactionbutton:1.8.0' не является правильным, поскольку это указует сенсорное событие на ListView. Это правильная реализация:

@Override public boolean dispatchTouchEvent(MotionEvent event){ 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     if (fabMenu.isExpanded()) { 
      Rect outRect = new Rect(); 
      fabMenu.getGlobalVisibleRect(outRect); 
      if(!outRect.contains((int)event.getRawX(), (int)event.getRawY())) { 
       fabMenu.collapse(); 
       return false; 
      } 
     } 
    } 
    return super.dispatchTouchEvent(event); 
} 

Работы в любом месте приложения, а не только в виде списка. Поместите его в свою деятельность.

 Смежные вопросы

  • Нет связанных вопросов^_^