Android UI进阶之弹窗的实施
发布时间:2021-12-18 14:18:50 所属栏目:教程 来源:互联网
导读:讲下Android中的PopupWindow。姑且就叫做弹窗吧,其实和AlertDialog一样,也是一种对话框,两者也经常混用,但是也各有特点。 下面就看看使用方法。首先初始化一个PopupWindow [java] PopupWindow mPop = new PopupWindow(getLayoutInflater().inflate(R.layo
|
讲下Android中的PopupWindow。姑且就叫做弹窗吧,其实和AlertDialog一样,也是一种对话框,两者也经常混用,但是也各有特点。 下面就看看使用方法。首先初始化一个PopupWindow [java] PopupWindow mPop = new PopupWindow(getLayoutInflater().inflate(R.layout.window, null), LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 实现PopupWindow的构造函数,第一个参数导入布局,后面两个指定宽和高。 弹窗一般有两种展示方法,用showAsDropDown()和showAtLocation()两种方法实现。一般参数有两种,有偏移和无偏移。 [java] bt1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { initPopWindow(); mPop.showAsDropDown(v);//以这个Button为anchor(可以理解为锚,基准),在下方弹出 }}); bt2.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { initPopWindow(); mPop.showAsDropDown(v,20,-20);//横轴偏移20,纵轴-20,一个状态栏的长度 }}); bt3.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { initPopWindow(); mPop.showAtLocation(PopWindow.this.findViewById(R.id.rl), Gravity.CENTER, 0, 0);//在屏幕居中,无偏移 }}); bt4.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { initPopWindow(); mPop.showAtLocation(PopWindow.this.findViewById(R.id.rl), Gravity.TOP | Gravity.LEFT, 20, 20);//在屏幕顶部|居右,带偏移 }}); bt5.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { if (mPop != null) { mPop.dismiss(); } }}); } 其中initPopWindow()方法来初始化一个弹窗 [java] private void initPopWindow() { if (mPop == null) { mPop = new PopupWindow(getLayoutInflater().inflate(R.layout.pop, null), LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); } if (mPop.isShowing()) { mPop.dismiss(); } } 这里定义了4个按钮来呈现展示效果,一个按钮用来关闭,来看下第三个按钮点击效果,就不一一截图了,大家可以自己试下。 看过我以前这系列博客的朋友就会发现,PopupWindow里面的布局就是抽屉里面用的布局,���面的背景就是上篇博客讲的可延伸图像。为什么用这个呢,我们来看下UC的menu效果 ![]() (编辑:开发网_郴州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



浙公网安备 33038102330466号