code: public static void attach(final View panelLayout,
                                final View focusView,
                                /** Nullable **/final SwitchClickListener switchClickListener,
                                SubPanelAndTrigger... subPanelAndTriggers) {
          final Activity activity = (Activity) panelLayout.getContext();
  
          for (SubPanelAndTrigger subPanelAndTrigger : subPanelAndTriggers) {
  
              bindSubPanel(subPanelAndTrigger, subPanelAndTriggers,
                      focusView, panelLayout, switchClickListener);
          }
  
          if (KPSwitchConflictUtil.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;
                  }
              });
          }
      }
docs: If you have multiple sub-panels in the {@code panelLayout}, you can use this method to simply
  attach them to non-layout-conflict. otherwise you can use {@link #attach(View, View, View)}
  or {@link #attach(View, View, View, SwitchClickListener)}.
  
  @param panelLayout         the layout of panel.
  @param focusView           the view will be focused or lose the focus.
  @param switchClickListener the listener is used to listening whether the panel is showing or
  keyboard is showing with toggle the panel/keyboard state.
  @param subPanelAndTriggers the array of the trigger-toggle-view and
  the sub-panel which bound trigger-toggle-view.