关于Android Dialog全屏显示

Android Dialog显示成Activity(全屏) 前言我们都知道要想让一个Activity显示成为Dialog的样式可以对Activity指定Dialog的主题(Theme),但今天使用PreferenceScreen时发现内嵌的PreferenceScreen将一个对话框(Dialog)显示出了Activity的效果。这是怎么做到的呢,今天就来分析一下其中的原理。现象在preference的配置文件中配置内嵌的PreferenceScreen标签 阅读详情

今天做项目用到了Dialog要全屏显示,网上查了些资料写的都不是很全面,我自己也试验了很多次后才得到完美的解决方案。

先是dialog style 这里一般写会指定他的父样式,但是如果你要全屏显示的话就不要继承父样式,否则会没有效果的。

<style name="FullScreenDialog">//这里千万不要写parent 否则会被父样式效果代替的
        <item name="android:windowIsFloating">true</item>//浮层在activity上 这项很重要
        <item name="android:windowIsTranslucent">true</item>//设置显示半透明蒙层
        <item name="android:windowBackground">@android:color/transparent</item>//背景透明
        <item name="android:windowAnimationStyle">@style/DialogAnim</item>//dialog显示和关闭动画
    </style>

然后是创建dialog 我是直接写个类继承dialog重写父类方法 这样直接自定义一个dialog 方便activity调用 其他地方重用也很方便

public class SoccerFilterDialog extends Dialog {

	public SoccerFilterDialog(Context context) {
		super(context, R.style.FullScreenDialog);//这里调用我写好的样式
	}

	public void initView() {
		setCanceledOnTouchOutside(true);
		View viewRoot = getLayoutInflater().inflate(R.layout.view_dialog_soccerfilter, null);
		setContentView(viewRoot);
		getWindow().setGravity(Gravity.BOTTOM);//靠底部显示
		getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);//设置dialog的宽度和高度 我设的宽度是填充父窗口,高度内容包裹
	}

}

然后是调用弹框显示了

public class MainActivity extends BaseActivity {
	
	private SoccerFilterDialog filterDialog;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_soccermain);

		filterDialog = new SoccerFilterDialog(this);//创建
		filterDialog.initView();//初始化view

		button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				filterDialog.show();//显示
			}
		});
	}
}

在模拟器和真机上都测试显示效果都很完美,真机m2分辨率 720*1280 模拟器分辨率480*800

效果图:



查资料的时候发现activity改style也可以做成弹框的样式,支付宝快捷支付就这样浮层的activity 。唉发现style太强大了 我了解的太少了,如果有哪位大神路过 能否告知activity做成弹框那种的样式 很想知道是怎样实现的 style是怎么定义的 ~!


Android全屏弹出Dialog显示状态栏和导航栏的问题及解决方案 然而,当我们尝试实现这样的Dialog时,可能会遇到一个问题:状态栏和导航栏在全屏Dialog中仍然可见,这可能会影响用户体验。然后,我们将全屏Dialog的内容设置为之前创建的布局文件。当我们使用Android中的Dialog类创建一个全屏的Dialog时,状态栏和导航栏通常会继续显示在全屏Dialog的顶部和底部,这可能会导致Dialog与应用的主题不一致,给用户带来困惑。通过上述步骤,我们成功地创建了一个全屏的Dialog,并隐藏了状态栏和导航栏,以实现更好的用户体验。方法来显示全屏Dialog。 阅读详情

相关推荐

Android Dialog全屏显示、动画显示

android点击相机和图片选择用到自定义Dialog

全屏Dialog的几种实现

在平时的开发中,经常遇到一些使用全屏弹窗的场景。今天,总结一下全屏弹窗的几种实现方法,大家可以结合自己的使用场景和习惯选择合适的方法。 实现全屏弹窗,我总结了三种方法: (1)全屏Dialog (2)全屏DialogFragment (3)全屏Activity 在一般的情况下,使用Dialog即可,相信大家实现弹窗的第一选择都是Dialog...

zhaojun的博客 2万+

基于STM32的最简易蓝牙遥控小车

基于STM32的蓝牙遥控小车,基于HAL库编写代码,具有移动功能,读者可自行添加其他扩展功能。按下状态的对应关系:2前进,4左转,5停止,6右转,8后退,松开状态都是5,都选择16进制。首先按照小车的图纸把小车的机械部分装好。做这个小车的成本在200元左右,包括焊接设备,杜邦线等。

weixin_43469377的博客 1万+

android Dialog全屏显示

Dialog全屏显示

jx315425246的博客 4033

永磁同步电机FOC控制实战:如何用线性死区补偿解决低速抖动问题(附Matlab仿真代码)

本文详细介绍了永磁同步电机FOC控制中线性死区补偿技术的工程实现方法,有效解决低速抖动问题。通过Matlab/Simulink仿真验证,该方案可将转矩脉动降低70%以上,显著提升系统稳定性。文章包含完整的数学模型构建、Simulink实现步骤及参数整定技巧,为工程师提供实用解决方案。

weixin_30872499的博客 153

霍尔式流量计背后的技术和算法

例如,在一项实验中,当流量低于最小操作范围(0.250 L/min)时,误差比其他流量大,但仍然在95%的精度范围内可接受。例如,在Honeywell电子学的测试中,使用30英寸水柱的压力计和热电偶测量气体特性,记录并计算实际和理论质量流量,以确定修正系数。霍尔式流量计的校准系数是通过一系列精确的测量和计算步骤确定的,以确保其测量结果的准确性和可靠性。霍尔式流量计的校准系数是通过严格的环境条件、精确的测量步骤和实验数据确定的。其中,Qs是标尺介质的流量,K是修正系数,Qm是用户介质的流量。

百态·数智思维 | 聚焦大数据、量化与未来AI 1229

Android 设置对话框占满全屏

【代码】Android 设置对话框占满全屏。

qq_27494201的博客 1873

一文读懂 STAR-CCM+:多物理场仿真王者,从入门到精通全攻略(附实战路线)

STAR-CCM+是西门子旗下的多物理场仿真平台,集流体、传热、结构、电磁等耦合求解于一体。其核心优势包括:全自动网格处理技术(支持十亿级网格)、多物理场无缝耦合、CPU/GPU并行加速计算、流程自动化与设计探索等。广泛应用于汽车(空气动力学优化、电池热管理)、航空航天(气动设计、发动机仿真)、能源(风电叶片流固耦合)、电子(芯片散热)等行业。相比ANSYS Fluent和OpenFOAM,STAR-CCM+在多物理场耦合和复杂几何处理方面更具优势,适合工业级高精度仿真需求。学习路径建议从基础操作入手,逐步

源代码杀手的博客 336

Android Dialog全屏显示

网上大多数介绍的实现方式就是在styles.xml中添加<itemname="android:windowFullscreen">true</item> 这个属性,但是自己按照操作不好使,后来自己尝试去做一下,总结方法如下代码 Dialog dialog = new Dialog(this, R.style.Dialog); dialog.show(); LayoutInflater inflater = LayoutInflater.from(this); View view.

menglong0329的博客 1359

ClawManager实战:OpenClaw批量部署+精细化权限管控,运维效率拉满90%

ClawManager彻底解决了OpenClaw规模化部署的运维痛点,它不是简单的“批量部署工具”,而是一套完整的企业级管理方案——从模板配置、批量部署,到权限管控、监控审计、AI治理,覆盖OpenClaw全生命周期管理,让OpenClaw从“个人工具”升级为“企业级AI基础设施”。对于中小企业,Docker一键部署即可快速落地,无需复杂配置;对于大型企业,K8s部署支持高可用、横向扩展,结合Keycloak对接企业现有认证系统,可完美融入企业IT架构。

2601_94871597的博客 604

C# WinForm上位机:从串口调试工具到智能温控系统(Modbus RTU协议实战+完整源码)

做工业上位机开发时,我们常从串口调试工具入手:验证设备通信、查看数据帧,但面对实际场景(比如温控、电机控制),单纯的“收发数据”远远不够——需要解析工业标准协议(如Modbus RTU)、实时监控关键指标、实现自动化控制逻辑,还要有稳定的UI交互和数据记录。串口调试工具能收发数据,但看不懂Modbus RTU帧(地址、功能码、寄存器、CRC校验);想控制温控设备(如加热器、风扇),但不知道如何通过Modbus写入控制指令;手动调节目标温度时,温度波动大,需要PID算法实现精准控温,但不会集成;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1296

Android dialog全屏显示

在设计dialog的时候,根据某些产品的需求需要加dialog设置全屏显示:如果使用正常的布局方式不管你这么设置都不会使dialog全屏,都会有个边界(dialog自带属性)。 对于需要显示全屏你需要做的就是添加几行代码就可以了。 如下:设置全屏显示就可以了。WindowManager.LayoutParams lp = window.getAttributes(); lp.wi

xj626361950的专栏 1万+

032、准谐振反激变换器(QR-Flyback)原理

文章摘要: 本文以65W PD快充炸管案例切入,解析准谐振反激变换器(QR-Flyback)原理。通过主动利用漏感与MOS结电容的谐振,在Vds波谷开通实现近似ZVS,显著降低开关损耗与电压应力。对比传统反激,QR模式轻载效率提升8%,Vds尖峰减少23%。关键设计要点包括:变压器漏感需<3%、谷底检测电路需抗干扰、启动阶段需防过冲。推荐NCP1340等专用控制芯片,并强调VCC电容优选低ESR陶瓷材质。QR适用于30W-150W场景,其核心优势在于轻载效率优化,但需平衡漏感控制与可靠性。作者结合实测数据与

Jack010169的博客 109

Android Dialog 全屏、Dialog 底部显示

完美全屏Dialog /** * 完美全屏Dialog */ private void dialog() { final Dialog dlg = new Dialog(getContext()/*, R.style.Theme_AppCompat_Dialog*/); dlg.setCanceledOnTouchOutside(true); dlg.show(); Window window = dlg.g

男儿不展风云志,空有天生八尺躯 2278

ComfyUI 汉化教程(中文界面)

如果你对翻译的结果不满意,还可以进行修改。首先,进入目录,可以看到该目录中有很多 JSON 文件:打开 JSON 文件,找到要修改的内容,修改对应的Value值即可:最后,重启 ComfyUI 即可。

水滴的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android dialog 横向全屏,Android应用开发Android Dialog全屏显示

本文将带你了解Android应用开发Android Dialog全屏显示,希望本文对大家学Android有所帮助。"获取屏幕宽高,设置到DialogDialog dialog = new Dialog(this, R.style.Dialog);dialog.show();LayoutInflater inflater = LayoutInflater.from(this);View viewDi...

weixin_35161750的博客 454

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android的dialog全屏显示不全

状态栏和导航栏都可能不适配:上下两边都显示下层界面 状态栏不适配:虽然状态栏信息不显示,但是dialog没有覆盖全屏,仍然显示下层界面 目前测试机型有:水滴屏、摄像头挖孔屏 导航栏不适配:导航栏还在,不是全屏状态 适配后 Dialog 全屏适配 2、代码实现 //顺序不能颠倒,否则出现导航栏无法适配问题 hideNavigationBar(); adjustFullScreen(getWindow()); getWindow().setBackgroundDrawa...

陈立的博客 2628

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android自定义dialog 全屏,自定义dialog全屏显示

默认的Dialog是不能全屏的。也就是怎么设置Dialog的Layout都没用的。下面给出实现Dialog实现全屏的两种方式:1、代码实现。这中方法相对比较简单首先继承Dialig,然后再构造函数中添加super(context, android.R.style.Theme);setOwnerActivity((Activity)context);2、XML实现首先,在values文件中添加一个X...

weixin_35160923的博客 950

android 代码设置dialog 全屏,关于android:如何设置对话框以全屏显示?

我有一个显示大量图像的GridView,当我点击任何图像时,它将在全屏对话框中显示完整图像请告诉我该怎么做谢谢。如果要使用FULL SCREEN Dialog,为什么不使用默认的ACTION_VIEW Intent来显示图像文件?抱歉,我的意思是几乎全屏或完整图像如果你必须对话,结合对willytate的回答然后在主题中使用android.R.style.Theme_Translucent_NoT...

weixin_42531128的博客 1351

【android】自定义全屏dialog显示+listview

折腾半天,自定义全屏dialog,单对话框式。 存一下,日后不用再写了。 /**  * 基础语音对话框  * @author make  *  */ public class BaseVoiceDialog { private Context context; private boolean show = false; private int height;

mkmarcy的博客 1088

android自定义dialog图片全屏,android AlertDialog自定义全屏显示

1、定义dialog style如下:2、java代码AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.DialogStyle);final AlertDialog dialog = builder.create();dialog.show(); // show之后在dialog的window上添加布局Wind...

weixin_39778815的博客 291

android 超简单实现dialog全屏显示

dialog全屏设置//dialog构造 public PlaneDialog(Context context, int themeResId) { super(context, themeResId); this.context = context; }//样式引用 public PlaneDialog(Context context) {

wxk105的博客 2554

Android 对话框 - 对话框全屏显示(设置 Window 属性、使用自定义样式、继承 DialogFragment 实现、继承 Dialog 实现)

Android 对话框 - 对话框全屏显示(设置 Window 属性、使用自定义样式、继承 DialogFragment 实现、继承 Dialog 实现)

weixin_52173250的博客 1194
上一篇: 对技术的态度
下一篇: 关于一个很坑的弹层动画
Return_Code
博客等级 码龄14年 8粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值