用于显示和隐藏相同弹出窗口的 Android 按钮

ram*_*man 3 android android-layout

任何人都可以告诉我如何使用单个按钮显示和隐藏相同的弹出窗口。

欢迎提出建议。


弹出意味着当我单击菜单按钮时,它会显示一个包含列表视图的弹出窗口,当我再次单击菜单按钮并触摸屏幕上的任何位置时,弹出窗口应该消失。

Ita*_*tto 5

我使用下面的代码来做到这一点。在您的情况下,这menuButton是您的单个按钮,content是您的列表视图。Theanchor可以是menuButton本身或另一个View

public static void setupMenuButton(View menuButton, View content, final View anchor) {
    PopupWindow popup;

    menuButton.setOnClickListener(v -> {
        if (popup == null) {
            popup = new PopupWindow(content, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            popup.setOutsideTouchable(true);
        }

        if (popup.isShowing()) popup.dismiss();
        else popup.showAsDropDown(anchor);
    });
}
Run Code Online (Sandbox Code Playgroud)