Android.Как показать всплывающее окно прямо над кнопкой - PullRequest
0 голосов
/ 03 июня 2019

Мне нужно показать всплывающее окно прямо над кнопкой. Моя кнопка находится внутри прокрутки, и под кнопкой всегда отображается всплывающее окно. Вот мой код:

  private void showPopup(View view, String text) {
    if (infoPopup == null) {
        LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
        View popupView = layoutInflater.inflate(R.layout.popup_credit_request_passport, null);
        TextView tvPopupText = popupView.findViewById(R.id.tv_popup_text);
        tvPopupText.setMovementMethod(new ScrollingMovementMethod());
        tvPopupText.setText(text);
        FrameLayout flBackground = popupView.findViewById(R.id.fl_background);
        flBackground.setBackground(new BubbleDrawable(getContext(), R.color.azure, 16, 16, 8));

        infoPopup = new PopupWindow(popupView,
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);
        infoPopup.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        infoPopup.setOutsideTouchable(true);

        infoPopup.showAtLocation(view, Gravity.TOP, (int) view.getX(), (int) view.getY());

    } else {
        dismissInfoPopup();
    }
}

Но это не работа. Пожалуйста, помогите мне. enter image description here

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Когда вам нужно показать всплывающее окно, выясните расположение кнопки на экране, затем используйте метод showAtLocation() в качестве Prachi Сказано с использованием Gravity.TOP и x,y coordinates кнопки на экране ...

1 голос
/ 03 июня 2019

Измените Гравитацию на Top и сбросьте ваши координаты в соответствии с вашими требованиями.

infoPopup.showAtLocation(view, Gravity.TOP, 0, (int) view.getY());
...