自定义视图FloatingActionButton已调用setOnTouchListener,但不会覆盖performClick

时间:2017-05-18 02:50:58

标签: android floating-action-button

我对我得到的警告感到非常困惑,因为我没有使用自定义类,我只是使用浮动操作按钮。有没有人知道如何解决这个问题?

“自定义视图FloatingActionButton已调用setOnTouchListener,但未覆盖performClick

FloatingActionButton touchFab = (FloatingActionButton) findViewById(R.id.floatingActionButton);
        touchFab.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        round.setRound();
                        round.setStartTime(System.currentTimeMillis());
                        return false;
                    case MotionEvent.ACTION_UP:
                        round.setEndTime(System.currentTimeMillis());
//                      setRecordedTime(round.getTimeDiff());
                        round.afterRound();
                        createFragment();
                        return false;
                    default:
                        return false;
                }
            }
        });

FAB的相关XML。

<android.support.design.widget.FloatingActionButton
            android:id="@+id/floatingActionButton"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginEnd="12dp"
            android:layout_marginLeft="12dp"
            android:layout_marginRight="12dp"
            android:layout_marginStart="12dp"
            android:clickable="true"
            android:focusable="true"
            app:backgroundTint="#FFF"
            app:fabSize="normal"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:rippleColor="@color/colorPrimaryDark"/>

经过一些测试,看来问题只是Android Studio 3.0 Canary,我只是回到稳定版的Studio而且没有错误。如果有人能够理解为什么警告会出现在新版本中,那将是值得赞赏的。

1 个答案:

答案 0 :(得分:1)

我有同样的问题。 我的结果覆盖方法performClick():

class FAButton(context: Context?) : FloatingActionButton(context){
    override fun performClick(): Boolean {
        return super.performClick()
    }
}