docs: public static void attach(final View panelLayout,
                                /* Nullable **/final View switchPanelKeyboardBtn,
                                /* Nullable **/final View focusView,
                                /* Nullable **/final SwitchClickListener switchClickListener) {
          final Activity activity = (Activity) panelLayout.getContext();
  
          if (switchPanelKeyboardBtn != null) {
              switchPanelKeyboardBtn.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      final boolean switchToPanel = switchPanelAndKeyboard(panelLayout, focusView);
                      if (switchClickListener != null) {
                          switchClickListener.onClickSwitch(v, switchToPanel);
                      }
                  }
              });
          }
  
          if (isHandleByPlaceholder(activity)) {
              focusView.setOnTouchListener(new View.OnTouchListener() {
                  @Override
                  public boolean onTouch(View v, MotionEvent event) {
                      if (event.getAction() == MotionEvent.ACTION_UP) {
                          /*
                           * Show the fake empty keyboard-same-height panel to fix the conflict when
                           * keyboard going to show.
                           * @see KPSwitchConflictUtil#showKeyboard(View, View)
                           */
                          panelLayout.setVisibility(View.INVISIBLE);
                      }
                      return false;
                  }
              });
          }
      }