这里我们我们就讨论一下怎么在android 平台下创建模态框!

首先声明一下:本文中提到的代码是我偶尔在一篇文章中看到的,但是绝非是抄袭原版

代码很大程度是我的,思想是我自己的理解,只不过我想声明一下防止别人误会!可以说这篇文

章绝对是原创!

那么创建模态框本文提供两种思路:

第一:利用AlertDialog,可以测试一下 在android 下面就是这样的,弹出来的提示框就是一个

模态框,但是怎么实现自定义的呢?这一步很关键,那就是通过View来动态的创建(或者叫填充)

一个View组件就行了!具体的操作看代码

View view = View.inflate(Context context, int resource,  ViewGroup root);


可以查看一下API,在API中的解释在context下创建(膨胀)一个view,他是创建于root这个对象的

上面的! 就是它了,接下来我们可以通过
view.findViewById(int resource);
创建你想要实现的组件我们暂且 就叫这个对象为 subView 前面已经提到

了使用哪个AlertDialog 这次用到它了。。

setView(View view)  Set the view to display in that dialog.

把你刚刚创建subView 放进去就可以了。。。(因为你的suvView 永远是View的子类。。)呵呵

是不是很简单?好了,这是第一种方式,我们再来看第二种方式,


我们通过PopupWindow那么在介绍PopupWindow之前我们要看看 LayoutInflater(其实也还可以

使用第一种方式 得到这个view),他还是类似于第一种形式的方式来产生LayoutInflate

然后通过这个对象的inflate (这一步就和第一种方式类似了)

inflate(int resource, ViewGroup root, boolean attachToRoot)


这样的话 我们就可以通过该方法得到一个View然后使用

view.findViewById(int resource);
创建我们我的组件

到这里位置,其实创建view的过程我完全可以使用方法一 的那些步骤 只不过这里给出了另一

种创建view的思路!好了接着就是popupwindow 了 在popupwindow 中有这样一个构造方法

PopupWindow(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)//点进这个方法 看看 。。里面有具体 解释 会有这么一个方法的解释  PopupWindow (View contentView, int width, int height, boolean focusable)


参数contentView就不说了,你懂的 (但是这里要换成你要弹出来的组件view了),

width 设置宽 属性(比如你要你的view 布满全屏 那就使用LayoutParams.FILL_PARENT吧),

height设置高 属性(比如你要你的view 布满全屏 那就使用LayoutParams.FILL_PARENT吧),

focusable 很明显了。。就是是否设置为焦点(建议设置为true 这样的话你就可以在弹出来

的时候做更多的操作,比如 设置键盘监听);

但是请注意一点:API中提到 The popup does not provide any background. This should be handled by the content view. 。。在弹出来的view中 并没有设置背景,背景的话就

要根据 你自定义的view 的中一样了(你的 view 可以是一个button 。可以使一个 text 。。

可以是 listview。。等等),如果 你设置动画的 透明效果的话,那就要设置 popupwindow

的setBackgroundDrawable 还有 setAnimationStyle了。。这样可以为 自己的 弹出框 添加

一些样式哦,最后的话我们还要定义一下弹出来的位置了。。showAtLocation。。这个方法。

具体我就不说了!只是给你大家提供一点思路!最后在把popupwindow都设置完之后 要调用一

下 update 方法让popupwindow知道 有新的东西加入了,再去显示!

更多相关文章

  1. Android软件广告屏蔽方法及代码
  2. Android异步处理常用方法
  3. Android设置TextView显示指定个数字符,超过部分显示...(省略号)的
  4. Android之隐式意图(Intent)如何查找匹配的组件
  5. Android使用自定义字体的方法
  6. Android 环信官方Demo3.3.2详细配置方法

随机推荐

  1. Android开发教程02:Android四大组件简介
  2. Android差量更新
  3. Android(安卓)代码混淆技术总结
  4. Android(安卓)Toast进阶——自定义Toast
  5. Android平台调用Web Service:示例
  6. Android NDK之接口统一
  7. [Android] 开心消消乐代码(写的比较简单)
  8. 阿里云手机应用开发点滴
  9. Android打混淆ProGuard工具的使用
  10. (三)Android数据结构学习之队列