这里我们我们就讨论一下怎么在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知道 有新的东西加入了,再去显示!
分享到:
相关推荐
Android 创建自定义View源码~~~~~~~~~~~~~~
Android自定义的框架,用于小项目的开发。谨慎下载。谢谢
android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android...
android自定义弹出框的实现。 平时做项目时,感觉android自带的弹出框样式比较丑,很多应用都是自己做的弹出框,这里也试着自己做了一个。
android创建自定义控件
自定义相机,带取景框和照片预览
android 自定义 单选按钮 radioButton
Android自定义搜索框的代码例子。用于演示自定义搜索框的功能,搜索框的实现方式有三种:1、利用Actionbar的SearchView控件;2、利用AutoCompleteTextView控件进行扩展;3、基于EditText+ListView实现自定义搜索框。
android三种自定义Loading加载框,让你的手机界面加载等待不再枯燥
我们知道,当系统控件并不能满足我们的需求时,我们就需要来创建自定义控件,主要有两种方法 (1)引入布局 下面来自定义一个控件,iPhone的标题栏,创建一个标题栏并不是什么难事,加入两个button一个TextView就行...
android推聊+自定义服务器(博客activity伪模态框示例),这是andriod客服端,也是博客文章:”android开发之activity伪模态框“的实例代码
使用AndroidStudio自定义Gradle插件源代码,https://blog.csdn.net/heart2016/article/details/85257133
创建全新的视图将满足我们独特的UI需求。 本文介绍在指南针开发中会用到的罗盘的界面UI,通过继承View类实现的自定义视图,以此来深刻了解自定义视图。
android Preference自定义样式
android创建一个自定义与多边形边框的ImageView.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
通过Drawable资源自定义编辑框的一简单小例子
Android 自定义弹出框,自定义取消和确定。
android studio 自定义标题栏,自定义回退按钮事件,自定义右侧显示文字还是图片,自定义右侧点击事件
android自定义弹出框实现(修改版).zip