2015-10-01 61 views
2

我正在使用Floating Action Button。我使用這個庫是因爲我需要inbox style 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

御莊Zhghenti的解決方案的使用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); 
} 

在應用程序的任何地方工作,而不僅僅是一個listView。將其放置在您的活動中。

相關問題