PopupWindow的基本用法

原创 2016年08月28日 21:39:07

PopupWindow的基本用法

1、PopupWindow的作用
PopupWindow控件,可以在屏幕任何地方以弹出框的方式显示任何View
2、PopupWindow的使用步骤
- 初始化弹出框所需要显示的View对象
- 初始化弹出框,并将View对象传递给弹出框
- 调用PopupWindow.showXXX方法将弹出框显示到屏幕上的具体位置

/**
 * PopupWindow控件,可以在屏幕任何地方以弹出框的方式显示任何View
 * 1 初始化弹出框所需要显示的View对象
 * 2 初始化弹出框,并将View对象传递给弹出框
 * 3 调用PopupWindow.showXXX方法将弹出框显示到屏幕上的具体位置
 *
 */
public class MainActivity extends Activity implements OnClickListener{

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        //将所点击的View控件传递给showPopupWindow方法
        showPopupWindow(v);

    }

    private void showPopupWindow(View anchor) {
        //1 初始化弹出框所需要显示的View
        TextView textView = new TextView(this);
        textView.setText("这是一个文本文件");
        // 2初始化弹出框,并传递View对象,以及弹出框的宽高
        //此处的LayoutParams用ViewGroup的包
        PopupWindow pWindow = new PopupWindow(textView,
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        /*
         * 设置用户点击其他区域时,弹窗隐藏
         * 此方法需要给PopupWindow设置一个BitmapDrawable作为背景
         */
        pWindow.setOutsideTouchable(true);
        pWindow.setBackgroundDrawable(new BitmapDrawable());
        //3 显示弹出框
        /**
         * showAsDropDown(View anchor, int xOffset, int yOffset)
         * anchor 将弹出框显示在anchor的左下角
         * xOffset  水平偏移
         * yOffset  垂直偏移
         */     
        pWindow.showAsDropDown(anchor, 30, 50);

    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Android实战一:更换头像

Android实战1:更换头像系列博客Android实战:方便大家快速集成到自己的项目中去(1)效果演示 (2)主要流程 写了个BaseActivity内部封装了,6.0动态权限的获取 底部的弹窗使...

广播接收器动静态注册

广播接收器可以自由地对自己感兴趣的广播进行注册,这样当有相应的广播发出时,广播接收器就能够收到该广播,并在内部处理相应的逻辑。注册广播的方式一般有两种,在代码中注册和在AndroidManifest....

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Android的APP强制更新

Android的APP强制更新,一个文件搞定

App开发:强制更新app

第一种:jjdxm_updateGitHub地址:jjdxmashl/jjdxm_update效果图: 点击立即更新,程序会在后台下载,通知栏有下载进度。这个时候手机系统很卡,可能由于是下载app...

面向对象三大特征

刚开始学习面向对象浓缩的一些笔记

Android实战二:动态权限的BaseActivity封装

Android实战二:动态权限的BaseActivity封装 将动态权限封装到BaseActivity中,一行代码拿来就用使用

从MVP登录Demo理解MVP模式

(1)MVP概述 一说到MVP模式,就必然要了解这张图。复杂的原理先不用说,说了大家也是迷迷糊糊的,首先记住两点就可以了Model层与View层之间不直接交互,由Presenter这个中间角色完成 A...

android强制更新APK

Runtime runtime = Runtime.getRuntime();            Process proc =...

Android 应用强制更新策略

Android应用强制更新的用途十分广泛,特别上刚上线的应用肯定会存在或多或少的bug,特别是涉及移动支付这一块的内容,如果出错了会造成比较大的损失,所以强制更新显得尤为重要。 一般来说,强制更新的...

Kotlin学习笔记(二)基本数据类型

Kotlin中常量和变量的定义格式: val相当于java中的final关键字,表示该变量是一个常亮,不可修改(类型的声明可以不写) var表示一个变量,可以被修改 val 常量名:变量类型 = va...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)