这里我们我们就讨论一下怎么在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. **创建自定义布局**:设计一个包含所需元素(如标题、内容、按钮等)的布局文件,以满足模态框的需求。 2. **在Activity中添加和移除**:在需要显示模态框时,将这个布局动态添加到Activity的根布局中;当用户...
在Android应用开发中,对话框(Dialog)是与用户交互的重要元素,分为模态和非模态两种类型。本文将详细介绍这两种对话框的实现,并结合源码和工具进行讲解。 模态对话框(Modal Dialog)是一种阻塞用户界面直至...
在标题提到的“Android实现模态dialog”中,我们将探讨两种常用的方法来创建模态对话框:PopupWindow和使用Activity。 首先,我们来看**PopupWindow**的实现。PopupWindow是Android系统提供的一个类,它可以创建一...
在Android开发中,自定义弹框(Dialog)是一种常见的用户交互方式,用于提供临时的、非模态的信息展示或操作选择。在这个特定的场景中,我们讨论的是一个自定义的日期选择器弹框,它允许用户选取年、月、日以及时间...
在Android开发中,创建自定义的用户界面是提高应用程序用户体验的关键步骤之一。本文将深入探讨如何构建一个自定义的单选和多选对话框。这些对话框可以作为UI模板,适用于各种项目,并且只需进行少量的修改,就能...
在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建独特的对话框。本文将详细讲解如何通过继承Dialog类来实现自定义Dialog,并结合提供的"dialog"压缩包中的文件,深入...
在Android中,Dialog是一种非模态窗口,它浮现在应用程序的主窗口之上,提供额外的信息或需要用户进行一些操作。将省市区选择做成Dialog,可以使用户无需离开当前页面就能完成选择,减少了操作步骤,提高了应用的...
3. **组件丰富**:包括但不限于导航抽屉(Navigation Drawer)、滑动抽屉(Sliding Panels)、标签页(Tabs)、模态框(Modals)等,满足各种常见界面需求。 4. **易于定制**:允许开发者通过XML属性或Java代码修改控件的...
自定义对话框允许开发者根据应用程序的需求创建具有独特功能和外观的对话框,而非仅仅依赖系统提供的标准对话框。 首先,我们来深入理解一下什么是对话框。对话框是程序中弹出的一个窗口,它限制了用户的操作范围,...
2. **自定义对话框**:DialogDemo可能展示了如何创建自定义对话框,这通常涉及到继承基础对话框类并添加自己的视图元素和逻辑。在Java中,这可能涉及重写`paintComponent()`方法,而在Android中,可能需要布局XML...
在Android开发中,DialogFragment是Android SDK提供的一种用于创建对话框式UI组件的类,它是Fragment的子类,可以方便地在Activity中显示模态对话框。本实例着重讲解如何利用DialogFragment自定义对话框,并提供了...
在Android开发中,自定义Dialog是一项常见的任务,它允许开发者根据需求创建独特且符合应用风格的弹出对话框。这个名为"HerilyAlertDialog"的源码项目,专注于完全自定义的Dialog实现,提供了深入理解Android Dialog...
在Android开发中,有时我们需要创建一个与支付宝支付成功页面类似的对话框(Dialog)来提供用户友好的支付体验。本文将探讨如何实现这样一个仿支付宝支付成功的简单实例Dialog。 首先,我们需要理解Dialog在Android...
在Android开发中,我们可以使用AlertDialog.Builder来创建自定义对话框。通过设置不同的参数,如标题、消息、按钮和视图,我们可以改变对话框的外观和行为。例如,可以添加自定义布局文件作为对话框的内容视图,以...
创建自定义`Dialog`通常涉及以下步骤: 1. **创建布局文件**:首先,我们需要在`res/layout`目录下创建一个新的XML布局文件,定义自定义`Dialog`的UI元素和样式。这个布局可以包含按钮、文本视图、输入框等,根据...
本文主要给大家介绍了关于Android中DialogFragment自定义背景与宽高的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 自定义方法如下: 先申请无标题栏 @Nullable @Override public
1. **选择合适的库或框架**:在Java中,我们可以使用JavaFX或Swing来创建自定义对话框。在Android中,可以利用AlertDialog.Builder或自定义布局来实现。在iOS开发中,可以使用UIAlertController或自定义UIView。选择...