文档章节

关于popupwindow的一点设置以及动画效果

东西南瓜西葫芦
 东西南瓜西葫芦
发布于 2015/05/28 15:29
字数 424
阅读 118
收藏 0

只是自己用的时候顺便整理了一下

  1. 创建一个popupwindow

  View view= LayoutInflater.from(context).inflate(R.layout.view, null);
  //背景颜色
  view.setBackgroundColor(Color.WHITE);
  PopupWinow popupWindow = new PopupWindow(view,LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);
  //显示(自定义位置)
  popupWindow .showAtLocation(button, Gravity.CENTER_HORIZONTAL  | Gravity.CENTER_VERTICAL, 0, 0);
  //popupWindow .showAsDropDown();//显示在控件下面
  //关闭
  popupWindow.dismiss();
  popupWindow.isShowing();//判断当前popupwindow是否打开

  

2.点击窗体外消失

// 需要设置一下此参数,点击外边可消失
  popupWindow.setBackgroundDrawable(new BitmapDrawable(getResources(),
    (Bitmap) null));
  // 点击窗外可取消
  popupWindow.setTouchable(true);
  popupWindow.setOutsideTouchable(true);

3.关于窗体会被软件盘遮挡

// 设置pop被键盘顶上去,而不是遮挡
  popupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
  popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

4.关于给popupwindow添加各种动画效果(旋转,渐现,平移...),

(1).给pop设置属性 

popupWindow.setAnimationStyle(R.style.popwindow_anim_style); // 设置动画

(2).style样式里面写样式

<style name="popwindow_anim_style">
        <item name="android:windowEnterAnimation">@anim/popup_show</item>
        <!-- 指定显示时的动画xml -->
        <item name="android:windowExitAnimation">@anim/popup_gone</item>
        <!-- 指定消失时的动画xml -->
</style>

(3).anim里面配置动画效果

popup_show:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
 <translate    
        android:fromXDelta="-100%"    
        android:toXDelta="0"    
        android:fromYDelta="0"    
        android:toYDelta="0"    
        android:duration="500" />
</set>

popup_gone:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate    
        android:fromXDelta="0"    
        android:toXDelta="-100%"    
        android:fromYDelta="0"    
        android:toYDelta="0"    
        android:duration="300" />
</set>

5.pop的弹窗效果可以通过在AndroidManifest.xml里面设置成Theme.Dialog,

android:theme="@android:style/Theme.Dialog"

使用activity回调时如果startActivityForResult()刚刚执行完就调用了onActivityResult()而没有将相应的值传回来,在AndroidManifest.xml里将当前activity的launchMode去掉

android:launchMode="singleTask"

6.如果遇到show之后不显示的问题,设置下宽高

etWidth(LayoutParams.WRAP_CONTENT);
setHeight(LayoutParams.WRAP_CONTENT);

 

© 著作权归作者所有

东西南瓜西葫芦
粉丝 1
博文 23
码字总数 7490
作品 0
临沂
程序员
私信 提问
Android:PopupWindow

一、概述 1、构造方法 部分常用: PopupWindow(View contentView, int width, int height)Create a new non focusable popup window which can display the contentView.PopupWindow(View c......

Xushao
2013/12/16
0
2
Android技能树 — PopupWindow小结

前言: 关于下拉选择框,估计大家都有很多选择,我在以前的文章:项目需求讨论-HyBrid模式需求改造 上写过下拉框选择这一块,正好用的Spinner。 这次正好又有一个下拉框的需求,所以这次我使用...

青蛙要fly
2018/09/09
0
0
PopupWindow 使用详解(二) Popwindow 制作常见花哨效果

帝都几日降温,终于被撂倒了。but 只要一息尚存就得不断进步!于是,写出 《PopupWindow 使用详解》的第二篇 笔记,先奉上 第一篇链接: 《PopupWindow 使用详解(一) 中文API 文档 赠送 Li...

猴亮屏
01/08
0
0
PopupWindow 使用详解(一) 中文API 文档 赠送 ListPopupWindow 中文 API

笔者数了数枕巾脱落的头发,发现了 Android 开发常用的类似于弹窗的悬浮窗口 大概是 PopupWindow 和 dialog。之前有还算具体的写过关于 dialog 以及自定义 dialog 甚至是 dialogActivity 的相...

猴亮屏
01/08
0
0
使用 PopupWindow 的时候遇到Activity com.avcit… has leaked

在OnCreate方法中调用 > popupWindow.showAtLocation(view, Gravity.LEFT Gravity.TOP, x, y); 时,会出现以下错误: 这是因为这个popupWindow依赖的父Activity已经finish()的了,但是它还...

BravoZu
2013/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux下ctrl+c中止不了

有一台centos7的服务器,ctrl+c无效,并且tail -f也无效,只能关掉终端或者crtl+z放入后台再删掉,但是ping的时候使用ctrl+c是有效果的。 出现这种情况的原因可能是因为有人要使用ruby安装r...

gaolongquan
11分钟前
0
0
Android三年工作面经

工作三年出来看看新的机会,依次面试过如下公司: 小米(北京) iHandy(北京) 涂鸦智能(杭州) 微软(北京) 宜信(北京) 蚂蚁金服(杭州) 瓜子二手车(北京) 高德(北京) 基本上投递的简历都得到了面...

JerryLin123
14分钟前
1
0
开发函数计算的正确姿势——tensorflow serving

前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计...

阿里云云栖社区
18分钟前
5
0
社区角色(Kubernetes社区Maintainer是什么角色?)

社区成员按照角色,分为member、reviewer、approver、subproject owner。 下面我们介绍一下每个角色的职责和要求。 member reviewer approver subproject owner...

恋恋美食
35分钟前
0
0
【JavaScript】callee 与 caller

callee callee是函数参数arguments对象的一个属性,它指向参数arguments对象所在的函数自身。 function foo (x) {console.log(arguments.callee);return x;}foo(); 从控制台中可以看...

小草先森
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部