自定义Dialog Theme的Activity

本文介绍了在公司模块化开发背景下,如何使用Activity来实现Dialog的样式和功能。通过创建Theme样式,设置Activity动画,以及编写自定义Dialog布局和实现,详细阐述了这一过程。特别提到了在Android 8.0上全屏显示Dialog的注意事项,以及如何优雅地通过Hook方式解决屏幕方向限制问题。
摘要由CSDN通过智能技术生成

##背景
最近公司开发NFC开门的功能,咋一眼看功能很简单,直接用Dialog方式封装就能解决问题。但是我们公司是模块化的方式搭建开发App,为了让模块间的代码层次清晰与扩展及易与阅读,因此我们最终用Activity的方式实现Dialog的样式及功能。
Dialog 1
dialog 2

以下的开发过程以dialog1图片举例说明

##开发过程
###1.创建Theme样式

<style name="activityTransparentTheme" parent="@style/AppTheme.NoActionBar">
   <item name="android:windowFrame">@null</item> <!-- 无windowFrame -->
   <item name="android:windowIsFloating">true</item>  <!-- 浮在activity之上 -->
   <item name="android:windowIsTranslucent">false</item>  <!-- 半透明 -->
   <item name="android:windowNoTitle">true</item> <!-- 隐藏标题 -->
   <item name="windowNoTitle">true</item> <!-- 隐藏标题 -->
   <item name="android:background">@android:color/transparent</item>
   <item name="android:windowBackground">@android:color/transparent</item> <!-- 设置系统给定的透明值 -->
   <item name="android:backgroundDimEnabled">true</item>  <!-- 背景是否变暗-->
   <item name="android:windowAnimationStyle">@style/AnimationFade</item>
   </style>   <!-- activity显示方式 -->

1、如果继承的Activity是AppCompatActivity,需要用@style/AppTheme XX的样式
2、如果阴影部分出现文字,用windowNoTitle和android:windowNoTitle设置为True即可

扩展:1.windowNoTitle = false 并且 android:windowNoTitle = false 时,会出现两个标题,位于下方的是AppCompatA

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值