PopupWindow显示在某个控件上方

PopupWindow有一个显示在在某个上方的方法,但是没有定义一个在控件下方的方法,不知为何.这里提供一个小思路:

public class PopupOrderPriceDetail extends PopupWindow {

    private int popupWidth;
    private int popupHeight;

    public PopupOrderPriceDetail(Activity context, BusTicket busTicket, int size, boolean isInsurance) {
        super(context);
        View view = LayoutInflater.from(context).inflate(R.layout.order_price_detail, null);
        // 设置可以获得焦点
        setFocusable(true);
        // 设置弹窗内可点击
        setTouchable(true);
        // 设置弹窗外可点击
        setOutsideTouchable(true);
        setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
        setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
        setAnimationStyle(R.style.popup_animation);
        setContentView(view);
        //获取自身的长宽高
        view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
        popupHeight = view.getMeasuredHeight();
        popupWidth = view.getMeasuredWidth();
    }
    public void showUp(View v) {
        //获取需要在其上方显示的控件的位置信息
        int[] location = new int[2];
        v.getLocationOnScreen(location);
        //在控件上方显示
        showAtLocation(v, Gravity.NO_GRAVITY, (location[0] + v.getWidth() / 2) - popupWidth / 2, location[1] - popupHeight);
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android干货

安卓开发_慕课网_百度地图_刮刮涂层效果

377140
来自专栏编程之路

羊皮书APP(Android版)开发系列(十九)在ScrollView中使用ListView、GridView的方法

10020
来自专栏林冠宏的技术文章

android view 中各函数的执行顺数

这个就好像是 activity 的生命周期一样,如果我们要使用自定义的 view,那么就很有必要了解一下 view 的那些能够被重写的函数的执行顺序。废话不多讲...

20380
来自专栏水击三千

TimePicker控件、帧动画、补间动画

1.TimePicker控件 最近感觉每个开发平台的控件基本都差不多,在Android中控件的事件和.net控件直接写事件有一定的区别,net事件可以直接界面进...

282100
来自专栏Android干货

关于安卓开发实现进度条对话框

57170
来自专栏Android机动车

轻松实现右滑关闭当前Activity

常常可以看到,很多Android应用都有这么一个功能,就是滑动关闭Activity,比如微信,CSDN移动端,百度贴吧移动端等。我自己也想写个滑动关闭Activ...

11410
来自专栏学海无涯

Android开发之帧动画

Android动画主要分为3种 View动画(Android开发之View动画) 帧动画 属性动画 何为帧动画? 帧动画最简单,通过顺序播放一系列的图像产生动画...

31580
来自专栏郭霖

Android 3D滑动菜单完全解析,实现推拉门式的立体特效

在上一篇文章中,我们学习了Camera的基本用法,并借助它们编写了一个例子,实现了类似于API Demos里的图片中轴旋转功能。不过那个例子的核心代码是来自于A...

378100
来自专栏Android先生

让你的Dialog变得更简洁一点吧

用Builder模式重新打造一个dialog,案例中有两种Builder,分别是CommonBuilder和MDBuilder,如果还想实现其他的通用,继承自F...

10730
来自专栏Android干货

安卓开发_浅谈Android动画(一)

30170

扫码关注云+社区

领取腾讯云代金券