Dialog 设置背景布遮挡navigationbar 遮挡statusbar

解决使用BottomSheetDialog底部虚拟导航栏NavigationBar的颜色 最新版本的BottomSheetDialog状态栏发黑问题已经没有了但是虚拟导航栏还是会发黑。 华为手机在使用BottomSheetDialog的时候底部虚拟导航栏总是黑色的看着和App整个UI不搭配 这里可以看到底部是黑色,要想解决需要单独为底部虚拟导航栏设置一下 @RequiresApi(api = Build.VERSION_CODES.M) private void setWhiteNavigationBar(@NonNull Dialog dialog) { Wi 阅读详情
Done!!!!!! 一定要记住style 里面要有layout_gravity 为bottom的属性,不然就不对了。
<style name="AppThemeDialogFull" parent="ThemeOverlay.AppCompat.Dialog.Alert">
        <!-- Customize your theme here. -->
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:layout_gravity">bottom</item>
        <item name="android:windowBackground">@mipmap/background_1</item>
    </style>
1: 做一个只遮挡navigationbar的背景

2: 在style 里面设置windowbackground这个背景,记住一定是这个windowbackground 而不是background,一定要记住style 里面要有layout_gravity 为bottom的属性,不然就不对了。

3: getwindow的时候设置高度为整个屏幕的高度,例如这里就是320的高度,如果高度改为了MatchParent ,就会报错。

4: 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="290dp"
android:orientation="vertical">

<Button
android:layout_width="match_parent"
android:layout_height="20dp"
android:text="click1"/>

</LinearLayout>

 

 
<style name="AppThemeDialogFull" parent="ThemeOverlay.AppCompat.Dialog.Alert">
<!-- Customize your theme here. -->
<item name="android:backgroundDimAmount">0.5</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:layout_gravity">bottom</item>
<item name="android:windowBackground">@mipmap/background_1</item>
</style>

 
package bjpkten.systemuiflagtest;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.Gravity;
import android.view.ViewGroup;
import android.view.WindowManager;

/**
 * Created by Kodulf on 2019/1/15.
 */
public class MyDialog extends Dialog {

    public MyDialog( Context context) {
        super(context);

//        getWindow().requestFeature(Window.FEATURE_NO_TITLE);
//        getWindow().setDimAmount(0.5f);

//        getWindow().setBackgroundDrawable(R.mipmap.background_1);


    }

    public MyDialog( Context context, int themeResId) {
        super(context, themeResId);


    }

    protected MyDialog( Context context, boolean cancelable,  DialogInterface.OnCancelListener cancelListener) {
        super(context, cancelable, cancelListener);
    }


    @Override
    public void show() {
//        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
//        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
//        getWindow().getDecorView().setPadding(0,0,0,0);

//        WindowManager.LayoutParams attributes = getWindow().getAttributes();
//        attributes.width= 1000;
//        attributes.height = 2800;

//        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
        super.show();

        getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT,320);
        getWindow().setGravity(Gravity.BOTTOM);
//        getWindow().setGravity(Gravity.TOP);
//        getWindow().getDecorView().setPadding(0,0,0,0);
//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN|WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS|WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);


//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//        getWindow().setNavigationBarColor(Color.parseColor("#474747"));
//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
//        this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
//        getWindow().getDecorView().setPadding(300,300,300,300);
//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
//        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

    }
}
快速解决BottomSheetDialog与导航栏的颜色冲突问题 两种解决BottomSheetDialog与导航栏颜色不同的方法 阅读详情

相关推荐

ADS(Arm Developer Suite)安装的坑!

实验课老师让我们区安装ADS,作为嵌入式开发的工具,原本以为这只是一个简单的软件,但是当我安装的时候,我才发现这软件太难了!安装了我大半天,看了其他的博客之后,最终才安装成功???????? 安装过程的一个巨坑就是:安装路径!以及安装许可注册文件 如果没有注意路径,最后安装成功以后打开软件就是蜜汁报错???? 报错了怎么办?删掉已安装的东西,重新安装吧,而且要删干净 再次安装的时候,打开安装包是这个提示...

weixin_42795819的博客 8218

bottomsheetdialogfragment nav bar 黑色变白色

https://stackoverflow.com/questions/47553936/prevent-bottomsheetdialogfragment-covering-navigation-bar I had the sameproblemand I finally found a solution which is not hacky or needs an orbitant amount of code. This Method replaced the window backgro...

赵小龙同学的博客 766

candence layout快捷键

摁住鼠标左键再框选:选中 摁住鼠标右键再框选:放大 选中之后,滚动鼠标滚轮进行放大缩小。 F:回到全局 shift+V:缩小 键盘的箭头:移动视图 F1:显示帮助文档Candence help F2:保存 点击r,画出矩形时不双击鼠标,点击F3,可以设置尺寸。 Creat-Shape-Path Creat-Wiring-Bus:画多根线。F3设置线宽、间距等。 选中金属后,Shift+G画保护环guard ring。F3可以设置距离金属的间距、保护环的形状。 Path和Rectang

weixin_45861827的博客 2655

dialog全屏并覆盖状态栏

项目开发中遇到一个问题,全屏弹窗写一个activity的话流程变得比较复杂,所以想用dialog实现全屏并且覆盖状态栏的需求, 开始写的时候发现状态栏怎么都覆盖不上,然后最后找到一个属性。 全屏覆盖状态栏显示加上以下代码:  window.setType(WindowManager.LayoutParams.TYPE_APPLICATION_PANEL);  window.setFlags(W...

qq_25409587的博客 8693

facebook协议

支持同时登录多个Facebook账号,按照关键词采集小组地址,群发小组,批量添加推荐人,群发推 荐人消息,采集个人Facebook用户,群发用户私信,群发主页评论。通过客服台管理功能,和粉丝互动聊天,通过话术快捷回复,自动翻译聊天记录。通过FaceBook小组采集小组成员id,或者通过FaceBook个人主页,采集主页上粉丝批量操作已FaceBook账号添加推荐热,可以指定添加某个国家的推荐人,可以设置每个账号添加推荐人个数去重模式:所有的FaceBook账号不添加重复的推荐人。

2503_90751938的博客 956

使用下一代的嵌入式IDE-PlatformIO 教程

1.生成工程 1.1 打开STM32CubeMX: 选择你的MCU,这里我用的是STM32F103RC RCC中开启外部HSE时钟,外部时钟比HSI更稳定些 开启DEBUG 4线 打开串口1用于打印调试信息,波特率115200,校验位0,停止位1 打开串口2用于MODBUS协议,波特率9600,校验位0,停止位1 接入RT-thread:参考官方文档 基于 CubeMX 移植 RT-Thread Nano 根据官方文档,需要1.取消生成HardFault_Handler、PendSV_Handler、Sy

jiladahe1997的博客 3万+

Android Dialog 蒙版(背景)与导航栏颜色的问题

Android Dialog NavigationBar 颜色

version1_0的博客 6829

米哈游运维面试题及参考答案

Linux 系统运行级别是用于定义系统启动时所需要达到的功能状态。运行级别 0:表示系统停机状态,用于关闭系统,是系统的关机级别。当系统切换到这个级别时,会停止所有的服务和进程,然后关闭系统。运行级别 1:也称为单用户模式。在这个级别下,系统只启动基本的系统服务和必要的进程,仅允许 root 用户登录系统进行维护操作,常用于系统出现故障需要紧急修复的情况,比如修复文件系统错误、重置 root 密码等。运行级别 2:多用户模式,但不支持网络文件系统(NFS)。

大模型大数据攻城狮的专栏 745

Android 适配安卓9.0,适配全面屏,Dialog或DialogFragment适配全面屏

Activity适配全面屏: 重写Activt /** * 生命周期 onCreate->onStart->onResume->onAttachedToWindow * 判断是否是异形屏,必须在此方法 */ @Override public void onAttachedToWindow() { super.onAttachedToWindow(); //适配安卓Q全面屏 NotchUtil.

凌云志 2849

179、瑞芯微RK3588在边缘盒子中的多摄同步架构——基于PLL的帧同步与曝光同步的实测调优

第一,RK3588的多摄同步,硬件上确实支持,但软件配置的坑比想象的多。第三,传感器的tPD差异是最大的不确定因素,选型时尽量选同一批次,而且要在量产前做全温测试——我遇到过低温下tPD变化超过3微秒的情况,直接导致同步失效。我遇到过一批IMX415,tPD差异达到±8微秒,直接超出SYNC控制器的补偿范围,最后只能挑芯片,把差异小的装到同一台设备里。别用100MHz,虽然分辨率更高,但高频信号在PCB走线上更容易引入EMI,边缘盒子的结构件往往没有很好的屏蔽,实测100MHz下同步信号边沿抖动明显增大。

zzfmlxs的博客 36

【异常】Cursor 模型服务地域访问限制报错的完整排查与解决方案This model provider doesn‘t serve your region

其本质是:Cursor客户端依赖的上游大语言模型服务提供商,基于自身服务的合规运营范围,对客户端发起的请求进行了来源地域权限校验;当系统检测到请求的网络来源地域,不在该模型服务商官方授权提供服务的地域范围内时,会触发服务访问拦截策略,拒绝响应本次模型调用请求,最终在客户端抛出该报错。合规声明:本文所提供的所有方案,均仅用于技术问题排查与解决,请您在使用过程中严格遵守当地法律法规,以及对应软件与模型服务提供商的用户协议与合规要求。更多关于AI+教育领域的干货,可以关注我的微信公众号一时间获取哦~

奶爸的编程之路,也就一周冷个三天 1134

通过style设置dialog沉浸式状态栏

【代码】通过style设置dialog沉浸式状态栏。

阿三的小九九 917

基于STM32L4XX、HAL库的AD7124-8BCPZ模数转换器ADC驱动程序设计

/ 公式: Voltage = (adc_value / (2^23 - 1)) * Vref。// 模式控制位[7:5]=000 (连续转换模式)// 3.2 配置通道0,使其使用AIN0(+)和AIN1(-),并关联到配置0和滤波器0。= 0x14) { // AD7124-8的ID是0x14。// 双极性操作,缓冲AINP/AINN。

zhusl6688的博客 376

Android Dialog 设置只遮挡StatusBar 不遮挡NavigationBar 的方案

  方案一: 设置背景图片, 然后在wm中设置高度为减去navigationbar的高度的,例如这里需要剪掉30   public void click2(View view) { MyDialog alertDialog = new MyDialog(this,R.style.AppThemeDialogFull); alertDialog.set...

Kodulf的专栏 2508

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

alertDialog 和Dialog 设置只遮挡statusbar 不遮挡navigationbar的方法

1: 第一种是纯的在代码中设置   2:第二种是设置一个背景的图片,然后将图片设置为背景   mainactivity: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { ...

Kodulf的专栏 2209

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

BottomSheetDialogFragment隐藏导航栏NavigationBar

BottomSheetDialogFragment 隐藏导航栏 NavigationBar

wkc12138的博客 2218

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

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

Android高版本dialog弹出黑色状态栏

测试发现8.0系统弹出时会出现黑色的状态栏很难忍受 添加依赖 implementation 'com.gyf.immersionbar:immersionbar:2.3.3-beta15' dialog中透明状态栏 ImmersionBar.with((Activity) context,this) .transparentStatusBar() ...

SolarLove的博客 2019

android全屏对话框,覆盖状态栏 尝试了多种方法 效果都不好

public class FullScrreenDialog extends Dialog { public FullScrreenDialog(Context context, List<FuncGridItem> shareList) { //super(context,R.style.Dialog_FullScreen); super(context); } @Override protected void onCreat

litefish的专栏 1658

安卓开发部分手机自定义dialog不能遮盖状态栏

本人最近在做一款APP,根据客户需求需要自定义的Dialog需要全屏显示并实现覆盖状态栏。由于安卓在开发的过程中需要适配多款机型多款系统,本人开发中使用的测试手机系统为Android 5.0,Android 6.0 ,Android 9.0,测试的手机品牌有OPPO、华为、小米及模拟器。在此基础上的设备,自定义Dialog均实现客户的需求。但是当APK文件提交到客户手里,经过客户测试,发现在部分手...

u010137314的博客 2084

Android 4.4 Dialog 被状态栏遮挡的解决方法

首先看不正常的图,点击tracing_dialog按钮弹出对话框 然后看理论上的效果图 观察两张图发现,不正常的图最上方被状态栏遮挡住了,而该问题存在于android4.4版本中。为了修复该问题,我们增加一个函数在Dialog的子类中,对于android4.4及以上版本进行修复,而android4.4以下版本不进行处理。我们先来看有问题的代码package cn.edu.zafu.demo;im

区长的专栏 1万+

【Android】隐藏状态栏StatusBar和导航栏NavigationBar

1、网络上关于隐藏StatusBar的方案很多,这里不再赘述,提供一个常见方式在activity下: // 隐藏状态栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 2、一些手机比如华为的机子,大多都有虚拟按键即navi...

fei飞来了 3262

Mr.Alright---怎样能让dialog覆盖在Status Bar上面

看图,截图的页面被Status Bar覆盖了,那么怎样修改可以覆盖在statusbar之上呢? /** * The general type of window. There are three main classes of * window types: * <ul> * <li> <strong>Application windows</strong> (ranging ..

Alright 422

android 隐藏statusbar,Android状态栏StatusBar常见用法

什么是StatusBar首先,谷歌官方的解释是,用于显示通知,传达设备状态的屏幕区域,与应用同时显示。而为了能够使应用显示沉浸式的内容(如电影图片等),官方赋予了应用对状态栏在一定程度上的控制能力,如应用可以调暗或者隐藏状态栏、沉浸式交互控制状态栏。在实际项目开发中,通常情况下,我们对状态栏的玩法有以下几种- 隐藏或者显示状态栏- 状态栏着色- 应用内容延伸到状态栏底下- 设置状态栏文字为黑色官方...

weixin_31640639的博客 1926

Android 如何让悬浮窗口覆盖显示在导航栏之上?

在开启了导航栏的项目上,想要全屏显示一个悬浮窗口,比如:手势唤醒动画窗口,如果没有设置窗口的布局参数 导航栏会显示出来,影响窗口的全屏显示 所以添加窗口的布局参数是关键,按以下设置是有效的: private WindowManager.LayoutParams mLp; private WindowManager mWm = (WindowManager) getSyste

wangjicong_215的博客 1万+

Android PopupWindow 覆盖状态栏的方法

简单记录一下哈! this.setClippingEnabled(false);

赵星海 3298

android解决底部导航栏遮挡问题,Android虚拟导航栏遮挡底部的输入框的解决方法

控件的绘制区域是否在padding里面,值为true时那么绘制的区域就不包括padding区域,默认滚动是在padding(区域)下进行的.然而如果你设置了此属性值为false,就能实现一些意想不到的效果.最近忙着app的适配,在这个过程问题中,各种机型的奇葩问题都出来了,适配真尼玛痛苦!如果为true,将调整系统窗口布局以适应你自定义的布局。

小漠007的专栏 2613
上一篇: 自定义dialog 让它覆盖到statusbar
下一篇: alertDialog 和Dialog 设置只遮挡statusbar 不遮挡navigationbar的方法
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值