我在google的支持设计库中使用FloatingActionButton时遇到了一些问题。按钮和onClickListener工作正常,但问题在于:
当我隐藏按钮并且之后显示它时,按钮在第一次单击时不直接执行onClick方法,必须单击2次才能工作。我没有在onClick上做任何复杂的事情,这可能需要时间才能为视图运行一个简单的getId
。这是我的代码,即使我怀疑那里有什么问题:
setVisibility()
和xml中的fab标签:
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);
}
});
编辑:我删除了<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" />
,显然FloatingActionButton已经设置了clickListener,因为当我点击操作按钮时会产生连锁反应。怎么了 ?这是我活动中唯一的代码。使用OnTouchListener而不是点击监听器似乎解决了问题,但它没有解释发生了什么
答案 0 :(得分:0)
使用dumpStdError()
或hide()
show()
和fab.setVisibility(View.GONE)
方法
答案 1 :(得分:0)
好消息答案就在这里:
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.setVisibility(View.GONE);
}
});