0

我在使用Google的支持设计库时遇到了FloatingActionButton问题。该按钮和onClickListener工作正常,但问题在这里:隐藏/显示后的浮动操作按钮onClick

当我隐藏按钮,然后显示它,按钮不直接执行onClick方法,当第一次点击时,它必须点击2次工作。我在onClick中没有做任何复杂的事情,可能需要一些时间才能为视图运行简单的setVisibility()。这里是我的代码,即使我怀疑的东西是有错:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
fab.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     View searchL = findViewById(R.id.searchLayout); 
     searchL.setVisibility(View.VISIBLE); 
    } 
}); 

,并在XML晶圆厂标签:

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="56dp" 
    android:layout_height="56dp" 
    android:layout_gravity="bottom|end" 
    android:src="@drawable/ic_search_white_24dp" 
    android:theme="@style/fabTheme" 
    android:layout_margin="15dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" /> 

编辑:我删除了OnCLickListener和显然FloatingActionButton已经有一个clickListener设置为它,因为当我点击动作按钮时,它会产生连锁反应。发生什么事 ?这是我的活动中唯一的代码。使用OnTouchListener而不是点击监听,似乎解决了问题,但它并没有解释发生了什么


+0

很难从代码在这里明白了,它似乎罚款。 请上传整个代码,或至少告诉你点击的位置。 另外,请提供您隐藏晶圆厂的代码。 –

+0

这就是事情,我没有做其他任何特殊的事情,我甚至创建了一个空的活动来测试这个和一个完全不同的应用程序只是为了调试这个问题,我认为它是一个支持库中的错误,'onClickListener'正在在'onCreate'方法中设置,我使用'fab.hide()'和'fab.show()'隐藏并显示按钮 –

回答

0

而不是使用用于浮动的操作按钮动画hide()show()方法,使用fab.setVisibility(View.GONE)fab.setVisibility(View.VISIBLE)

+0

以及我想使用.shide()和.show()必须处理动画 –

0

好消息答案就在这里:

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


      view.setVisibility(View.GONE); 

     } 
    });