当前位置: 首页 > 编程笔记 >

PopupWindow自定义位置显示的实现代码

宦琪
2023-03-14
本文向大家介绍PopupWindow自定义位置显示的实现代码,包括了PopupWindow自定义位置显示的实现代码的使用技巧和注意事项,需要的朋友参考一下

一、概述

在Android中弹出式菜单(以下称弹窗)是使用十分广泛的一种菜单呈现方式,弹窗为用户交互提供了便利。关于弹窗的实现大致有以下两种方式AlertDialog和PopupWindow,当然网上也有使用Activity并配合Dialog主题的方式实现弹窗,有兴趣的朋友也可以去研究一下。对于AlertDialog和PopupWindow两者最主要的区别就是显示的位置问题:

(1)AlertDialog在位置显示上是固定的
(2)PopupWindow相对比较随意,能够在主屏幕的任意位置显示。

二、效果图

三、代码

(1)MainActivity中的代码:

public class MainActivity extends AppCompatActivity {

  private int x;
  private int y;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {

    // 获得点击屏幕的坐标

    x = (int) event.getX();
    y = (int) event.getY();

    // 加载PopupWindow 对应的界面
    LayoutInflater inflater = getLayoutInflater();
    final View popupView = inflater.inflate(R.layout.popup_entry_layout,null);

    // 创建PopupWindow 对象
    final PopupWindow popupWindow = new PopupWindow(popupView,400,100); // 第二、第三个参数用来设置弹窗的大小,也可以用WRAP_CONTENT

    // 设置位置
    popupWindow.showAtLocation(popupView, Gravity.NO_GRAVITY,x,y);

    new Handler().postDelayed(new Runnable() {
      @Override
      public void run() {

        // 1秒后关闭该弹窗

        popupWindow.dismiss();

      }
    },1000);

    return true;
  }
}

(2)布局文件中的代码省略。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍echarts实现词云自定义形状的示例代码,包括了echarts实现词云自定义形状的示例代码的使用技巧和注意事项,需要的朋友参考一下 安装 词云安装官网 https://github.com/ecomfe/echarts-wordcloud 下面是一个小鸟形状的词云,可以在iconfont中下载(最好是填充的)图案,转为base64,就可以用来生成有图案的词云了 运行效果 以上就是本

  • 本文向大家介绍Angular.js中用ng-repeat-start实现自定义显示,包括了Angular.js中用ng-repeat-start实现自定义显示的使用技巧和注意事项,需要的朋友参考一下 前言 众所周知AngularJS 中可以使用 ng-repeat 显示列表数据,这对大家来说应该都不陌生了, 用起来很简单, 也很方便, 比如要显示一个产品表格, Controller 的 Javas

  • 问题内容: 使用时应该遵循哪种目录结构?例如,如果我正在构建WSGI应用程序并创建了一个称为virtualenv的虚拟环境,那么它将以类似以下的目录结构开始: 创建此环境后,将在哪里放置自己的环境: python文件? 静态文件(图像/等)? “自定义”程序包,例如在线提供的但在奶酪商店中找不到的程序包? 关于目录? (假设我已经知道virtualenv目录本身应该在哪里。) 问题答案: 提供py

  • 本文向大家介绍Java实现的自定义迭代器功能示例,包括了Java实现的自定义迭代器功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现的自定义迭代器功能。分享给大家供大家参考,具体如下: 编写自己的Iterator,实现Iterator接口,这里多说一句,实现Iterable后,可以用“foreach”循环遍历你的对象。 执行结果: 希望本文所述对大家java程序设计有所帮

  • 本文向大家介绍微信小程序实现定位及到指定位置导航的示例代码,包括了微信小程序实现定位及到指定位置导航的示例代码的使用技巧和注意事项,需要的朋友参考一下 一:实现定位及到指定位置导航所需组件及API 1:组件:map(地图组件) 2:API:wx.getLocation(Object object)(获取当前的地理位置、速度),wx.openLocation(Object object)(使用微信内

  • 本文向大家介绍c#自定义Attribute获取接口实现示例代码,包括了c#自定义Attribute获取接口实现示例代码的使用技巧和注意事项,需要的朋友参考一下 一般的接口实现多态 定义接口 定义实现的类 一般实现的方法 升级版 添加自定义(这个网上好多) 实现类 调用方法 这个可以避免需要维护swich语句 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价