隐藏/显示后浮动操作按钮onClick

时间:2016-05-31 18:11:26

标签: android onclicklistener android-design-library floating-action-button

我在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而不是点击监听器似乎解决了问题,但它没有解释发生了什么

2 个答案:

答案 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);

        }
    });