Android 基于NumberPicker自定义弹出窗口Dialog整合日期选择器

news/2024/11/8 18:38:08/

Android实现把年月选择器放到AlertDialog中_左眼看成爱的博客-CSDN博客

Android使用NumberPicker实现年月滚动选择器_左眼看成爱的博客-CSDN博客

前面两篇文章我们分别讲了

1,如何用NumberPicker实现年月选择器

2,如何把1中的用NumberPicker实现的年月选择器放到AlertDialog中去。

这篇文章我们则推出实现了弹层遮罩联动的最终版本,具体实现的效果请看示例图:

 1 定义自定义的Dialog样式

在res/values/styles.xml文件中定义自定义的Dialog样式:

<style name="BottomDialog" parent="Theme.AppCompat.Dialog"><item name="android:windowIsFloating">false</item><item name="android:windowNoTitle">true</item><item name="android:windowBackground">@color/transparent</item><item name="android:windowAnimations">@style/DialogAnimation</item><item name="android:background">@color/transparent</item><!--    <item name="android:windowSoftInputMode">stateUnspecified|adjustResize</item>--><item name="android:windowIsTranslucent">true</item><item name="android:windowContentOverlay">@null</item>
</style><style name="DialogAnimation"><item name="android:windowEnterAnimation">@anim/slide_in_up</item><item name="android:windowExitAnimation">@anim/slide_out_down</item>
</style>

其中,BottomDialog是自定义的Dialog样式名称,windowIsFloating设置为false表示Dialog不浮在activity之上,windowNoTitle表示Dialog没有标题栏,windowBackground设置为透明色,windowAnimations设置为Dialog的进出动画,background设置为透明色,windowSoftInputMode设置为stateUnspecified|adjustResize表示弹出Dialog时不会挤压当前界面的布局,windowIsTranslucent设置为true表示Dialog的背景为透明,windowContentOverlay设置为null表示Dialog的内容不会覆盖系统状态栏。

2 创建Dialog对象

在Java代码中创建Dialog对象,并设置样式:

Dialog dialog = new Dialog(context, R.style.BottomDialog);
dialog.setContentView(R.layout.your_layout);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);

其中,setContentView方法设置Dialog的布局文件,setCancelable方法设置是否可以通过返回键关闭Dialog,setCanceledOnTouchOutside方法设置是否可以通过点击Dialog外部关闭Dialog。 

3 显示Dialog

dialog.show();

将上面那两篇教程中的布局文件复制过来即可,也就是R.layout.your_layout


http://www.ppmy.cn/news/53058.html

相关文章

闲聊Java中$符的各种使用场景

前言 在Java编程中&#xff0c;我们会经常看到$符的身影&#xff0c;比如经常在配置文件中看到$符号作为变量占位符&#xff0c;用于在运行时动态地获取变量值。这种做法有助于提高代码的灵活性和可维护性。除了在配置文件中使用$符号外&#xff0c;我们还会在其他场景中遇到这…

统计学习方法第二章——感知机

x.1 前言 perceptron感知机是二分类的线性分类模型&#xff0c;输入为实例的特征向量&#xff0c;输出为实例类别(取-1&#xff0c;1)。perceptron旨在求出将训练数据进行线性划分的分离超平面&#xff0c;属于classification判别模型&#xff0c;策略为基于误分类的损失函数&…

【自然语言处理】【大模型】LaMDA:用于对话应用程序的语言模型

LaMDA&#xff1a;用于对话应用程序的语言模型 《LaMDA: Language Models for Dialog Applications》 论文地址&#xff1a;https://arxiv.org/abs/2201.08239 相关博客 【自然语言处理】【大模型】LaMDA&#xff1a;用于对话应用程序的语言模型 【自然语言处理】【大模型】Dee…

8种不同类型的防火墙

什么是防火墙&#xff1f; 防火墙是一种监视网络流量并检测潜在威胁的安全设备或程序&#xff0c;作为一道保护屏障&#xff0c;它只允许非威胁性流量进入&#xff0c;阻止危险流量进入。 防火墙是client-server模型中网络安全的基础之一&#xff0c;但它们容易受到以下方面的…

【翻译一下官方文档】学习uniCloud云数据库之前需要了解的传统api操作数据库(Command)

我将用图文的形式&#xff0c;把市面上优质的课程加以自己的理解&#xff0c;详细的把&#xff1a;创建一个uniCloud的应用&#xff0c;其中的每一步记录出来&#xff0c;方便大家写项目中&#xff0c;做到哪一步不会了&#xff0c;可以轻松翻看文章进行查阅。&#xff08;此文…

计算机网络学习02

1、TCP 与 UDP 的区别&#xff1f; 是否面向连接 &#xff1a; UDP 在传送数据之前不需要先建立连接。而 TCP 提供面向连接的服务&#xff0c;在传送数据之前必须先建立连接&#xff0c;数据传送结束后要释放连接。是否是可靠传输&#xff1a; 远地主机在收到 UDP 报文后&…

12 JS03——数据类型

目标&#xff1a; 1、数据类型简介 2、简单数据类型 3、获取变量数据类型 4、数据类型转换 5、拓展阅读 一、数据类型简介 1、为什么需要数据类型 在计算机中&#xff0c;不同的数据所需占用的存储空间是不同的&#xff0c;为了便于把数据分成所需内存大小不同的数据&#x…

用户订阅付费如何拆解分析?看这篇就够了

会员制的订阅付费在影音娱乐行业中已相当普及&#xff0c;近几年&#xff0c;不少游戏厂商也开始尝试订阅收费模式。在分析具体的用户订阅偏好以及订阅付费模式带来的增长效果时&#xff0c;我们常常会有这些疑问&#xff1a; 如何从用户的整体付费行为中具体拆解订阅付费事件…