2016-02-26 79 views
2

我想知道如何使浮動動作欄在點擊時消失。它執行的動作在同一個片段內,因此我不能簡單地加載另一個缺少FAB的活動或片段。我試圖在其onClickListener使用點擊後隱藏浮動動作按鈕

fab.setVisibility(view.GONE); 

FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.fab); 
fab.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     writeProfile(); 
     fab.setVisibility(view.GONE); 
    } 
}); 

但是,當然,你不能從一個內部類中訪問的變量。

編輯:接受的答案可以隱藏FAB,但我怎麼能從另一種方法中解除FAB?

回答

2

這是由於app:layout_anchor屬性。你必須在改變能見度之前擺脫錨點:

CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams(); 
p.setAnchorId(View.NO_ID); 
fab.setLayoutParams(p); 
fab.setVisibility(View.GONE); 
+0

如果我宣佈FAB最終結果,現在我如何讓FAB重新出現在FAB類之外的另一個方法調用中? –

+0

不可能? ~~~~ –