TabLayout 被点击或切换

TabLayout clicked or switched

TabLayout 有 2 个选项卡。 我有这个代码:

mTabLayoutLogin.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
           //do something
        }
        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
           //do something else
        }

有没有办法知道,当切换到选项卡时,用户单击了选项卡或代码有意切换到选项卡(如此代码 mTabLayoutLogin.getTabAt(1).select())?

谢谢

  1. (Hacky 解决方案)您可以尝试组合覆盖 Activity.dispatchTouchEvent(MotionEvent event) 和您的 addOnTapSelectedListener 方法,如果两者同时触发,则可能是由于用户点击而不是代码触发。

来自文档 http://developer.android.com/reference/android/app/Activity.html#dispatchTouchEvent(android.view.MotionEvent)

  1. (优雅的解决方案)当从代码调用时也会触发一个标志(可以是布尔值)。