2016-02-26 83 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

不可能? ~~~~ –