Я использую Floating Action Button. Я использую эту библиотеку, потому что мне нужен стиль inbox style fab. Проблема в том, что я могу закрыть меню с плавающим действием только при нажатии нижней панели. Мне нужно, если я щелкнув в другом месте на экране, тогда также fab должно свернуть, как это происходит в приложении Inbox. Как добиться такого поведения? Есть ли какие-либо атрибуты в этой библиотеке, которые я могу использовать, или мне нужно реализовать это поведение самостоятельно?Как скрыть fab при нажатии в любом месте экрана?
ответ
В библиотеке есть метод setClosedOnTouchOutside(boolean close)
, который вы можете использовать.
floatingActionMenu.setClosedOnTouchOutside(true);
Если вы используете 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;
}
});
< лжи - делает вид, чтобы продолжить прокрутку решения
Не могли бы вы объяснить, что здесь "listView"? –
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);
}
Работы в любом месте приложения, а не только в виде списка. Поместите его в свою деятельность.
Почему бы не установить его видимость Visibity.GONE? Вы можете добавить это к поведению onClick чего-либо в этом представлении. – mgokgoz