`
whao189
  • 浏览: 123552 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

android 创建自定义模态框

阅读更多
这里我们我们就讨论一下怎么在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自定义dialog

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建独特的对话框。本文将详细讲解如何通过继承Dialog类来实现自定义Dialog,并结合提供的"dialog"压缩包中的文件,深入...

    自定义单选,多选对话框(android)

    在Android开发中,创建自定义的用户界面是提升应用用户体验的关键步骤之一。"自定义单选,多选对话框(android)"是一个针对Android平台的项目,旨在提供一种强大的方式来构建可定制的单选和多选对话框。这样的...

    解决Android中自定义DialogFragment解决宽度和高度问题

    典型的用于:展示警告框,输入框,确认框等等。 在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框。 2、 好处与用法 使用DialogFragment来管理...

    Android中DialogFragment自定义背景与宽高的方法

    本文主要给大家介绍了关于Android中DialogFragment自定义背景与宽高的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 自定义方法如下: 先申请无标题栏 @Nullable @Override public

    android dialog------普通对话框

    首先,我们需要继承`AppCompatDialogFragment`或`AlertDialog.Builder`来创建自定义Dialog。如果是继承`AppCompatDialogFragment`,我们需要重写`onCreateDialog()`方法,其中构建`AlertDialog`。如果是使用`...

    android dialog 大合集 对话框 透明

    1. 自定义布局:通过设置自定义的XML布局文件,可以创建具有复杂结构和独特设计的对话框。使用`LayoutInflater`加载布局,然后将其设置为`AlertDialog`的视图。 2. 自定义主题:通过在AndroidManifest.xml中定义,...

    android各种Preference的使用

    5. `Preference`:基础类型,通常用于创建自定义的偏好设置。 在实际应用中,可以根据需求组合使用这些Preference,构建出丰富的设置页面。同时,还可以通过监听`OnPreferenceChangeListener`来实时响应用户在设置...

    android button shape Toast

    此外,`Toast`是Android系统提供的一种轻量级提示方式,用于显示简短的非模态消息。在`Button`点击事件中,我们可以使用`Toast`来展示一些信息: ```java Button myCustomButton = findViewById(R.id.my_custom_...

    Android_cn_android.widget

    在Android开发中,`android.widget`包是核心组件之一,它包含了各种用户界面(UI)控件,使得开发者能够创建丰富的交互式应用。这个包下的API主要是针对中文环境设计的,便于中国开发者理解和使用。在深入探讨之前,...

    一个Demo让你掌握所有的android控件

    除了系统提供的控件,开发者还可以根据需求创建自定义控件,以满足特定的设计或功能需求。 通过"AndroidBaseDemo"这个项目,你可以学习到如何在XML布局文件中声明这些控件,如何在Java代码中获取和操作它们,以及...

    一网打尽Android-UI

    理解颜色、形状、阴影等元素如何协同工作,以及如何创建可触摸的目标和过渡动画,对于构建高质量的Android UI至关重要。 2. **EditText(编辑框)**: EditText是用户输入文本的组件,支持多种输入类型如电话号码...

    更新UI android

    在更新UI的场景中,我们可能会创建一个自定义广播接收器,监听特定的事件,比如下载任务完成或进度更新,然后在接收到这些广播后更新UI。 2. **Service**: Service是Android中的一个后台运行组件,它可以在没有...

    Android progress前台运算

    ProgressDialog是一个模态对话框,通常包含一个进度条,显示任务的进度并阻止用户与应用的其他部分交互,直到任务完成或用户取消。虽然在新的Android版本中已不推荐使用,但在老版本设备上,它仍然是提供良好用户...

    test5(设置对话框大小)

    在Web开发中,HTML和JavaScript也有类似的处理方式,但对话框通常是通过弹出窗口(window.open)或自定义模态框(如Bootstrap的Modal)实现的。在window.open中,我们可以通过`width`和`height`参数设定大小,如`...

    对话框大全

    在Android系统中,对话框通常是非模态的,它们不会阻止用户与应用程序的其他部分交互,但可以吸引用户的注意力。本文将深入探讨Android Dialog的使用及其相关方法。 首先,我们来看Activity是如何管理对话框的。...

    Android入门第十篇之PopupWindow.docx

    PopupWindow在Android开发中是一种非常实用的组件,它允许开发者创建弹出式窗口,这些窗口可以显示在其他视图之上,通常用于实现类似下拉菜单、提示框或自定义对话框的效果。PopupWindow并不是一个真正的对话框,它...

    android UI说明和开发实例.doc

    Dialog是Android系统提供的一种轻量级窗口,它不占据整个屏幕,通常用于模态事件,需要用户进行操作后才能继续执行其他任务。Dialog类是所有对话框的基础,但直接使用Dialog类创建对话框并不推荐。开发者应使用...

    android Dialog示例源码

    在Android开发中,`Dialog`是一个非常重要的组件,它用于在主界面之上显示一个模态窗口,用于向用户展示信息、获取输入或者进行特定操作。本示例代码提供了多种`Dialog`类型的实现,包括单选对话框、复选对话框以及...

    androidui说明和开发实例.doc

    它不占据整个屏幕,通常用于模态事件,即用户必须采取行动才能继续操作。Dialog类是所有对话框的基础,但通常不直接使用,而是使用它的子类如AlertDialog、DatePickerDialog、ProgressDialog等来创建特定类型的...

    点击按钮弹出对话框...........

    对于更复杂的对话框,开发者通常需要创建自定义对话框,这涉及到UI设计和事件处理: 1. **UI设计**:在各个平台,如Android的XML布局文件、Qt的.ui文件、Windows Forms的设计器等,可以预先设计对话框的界面布局,...

Global site tag (gtag.js) - Google Analytics