android dialog的沙雕问题(宽度不充满全屏)

2023-10-31 23:31

本文主要是介绍android dialog的沙雕问题(宽度不充满全屏),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 1.这是显示的效果,右上角的叉号被莫名其妙的遮挡住了 

 2.下面这个是修改后的 使用的是用一个手机

 问题就是这么的莫名其妙,在某些手机上显示的就是正常的,但是在某些手机就是非正常显示,开始我也找不到问题的解决办法,不知道是哪里的问题,后来我冷静分析,会不会是布局的问题

我给dialog设置了背景色,测试了一下,结果还是不行,左边的图片就是充不满

这下面是我的布局代码 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:visibility="visible">
<!--marginEnd 和 marginStart是我后来找到了解决方案,按照蓝湖的边距增加的--><LinearLayoutandroid:layout_marginEnd="@dimen/dp_40"android:layout_marginStart="@dimen/dp_40"android:id="@+id/imageView2"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginTop="@dimen/dp_93"android:background="@drawable/dialog_version"android:orientation="vertical"><ImageViewandroid:layout_width="match_parent"android:layout_height="@dimen/dp_156"android:scaleType="fitXY"android:src="@mipmap/update" /><TextViewandroid:id="@+id/tvTitle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:layout_marginLeft="@dimen/dp_10"android:layout_marginRight="@dimen/dp_10"android:ellipsize="end"android:gravity="center"android:maxLines="2"android:text=""android:textColor="@color/textColor333"android:textSize="@dimen/sp_17" /><cn.qbang.tch.rpc.view.MaxHeightRecyclerViewandroid:id="@+id/recycler_version"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginStart="@dimen/dp_20"android:layout_marginTop="@dimen/dp_6"android:layout_marginEnd="@dimen/dp_20"android:layout_marginBottom="11dp"android:overScrollMode="always"android:scrollbarSize="@dimen/dp_2"android:scrollbarThumbVertical="@color/textColor888"android:scrollbars="vertical"android:visibility="visible"app:maxHeight="@dimen/dp_157" /><RelativeLayoutandroid:id="@+id/rlbottom"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="@dimen/dp_10"android:visibility="visible"><TextViewandroid:id="@+id/tvUpdate"android:layout_width="@dimen/dp_161"android:layout_height="@dimen/dp_40"android:layout_marginStart="@dimen/dp_65"android:layout_marginEnd="@dimen/dp_65"android:layout_marginBottom="@dimen/dp_10"android:background="@mipmap/update_btn_bg"android:gravity="center"android:text=""android:textColor="@color/colorefefef"android:textSize="@dimen/sp_15"android:visibility="gone" /><TextViewandroid:id="@+id/tvReport"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/tvUpdate"android:layout_centerHorizontal="true"android:paddingBottom="@dimen/dp_10"android:text=""android:textColor="@color/colorEF1A2D"android:textSize="@dimen/sp_10"android:visibility="gone" /></RelativeLayout></LinearLayout><ImageViewandroid:id="@+id/tvClose"android:layout_width="@dimen/dp_25"android:layout_height="@dimen/dp_25"android:layout_alignTop="@+id/imageView2"android:layout_alignEnd="@+id/imageView2"android:layout_marginTop="@dimen/dp_m_12"android:layout_marginEnd="@dimen/dp_m_12"android:src="@mipmap/icon_cancle_circle" /></RelativeLayout>
</RelativeLayout>

这是我的预览图,看着也没什么问题

 昨天下午想了一下午解决方案 ,找不到,快下班的时候突发奇想,想到了,既然dialog宽度没有充满全屏,那我把dialog充满全屏左右在设置边距是不是就可以了

说干就干

在dialog的show方法之后调用,设置上下左右的padding为0,宽度充满,高度自适应

 @Overridepublic void show() {super.show();WindowManager.LayoutParams attributes = getWindow().getAttributes();attributes.gravity = Gravity.BOTTOM;attributes.width = WindowManager.LayoutParams.MATCH_PARENT;attributes.height = WindowManager.LayoutParams.WRAP_CONTENT;getWindow().getDecorView().setPadding(0, 0, 0, 0);getWindow().setAttributes(attributes);}

设置完以上属性之后,dialog的宽度就是充满全屏的,这里暂时没有截图 大致就是下图这个样子了

然后又在布局中加入了marginStart和marginEnd属性,就搞定了,在手机上测试也是没有什么问题了,原生的dialog有很多的问题,改着也很麻烦,推荐用超哥的dialogx https://github.com/kongzue/DialogX

 

这篇关于android dialog的沙雕问题(宽度不充满全屏)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/318877

相关文章

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException: org.junit.Test问题

《解决tomcat启动时报Junit相关错误java.lang.ClassNotFoundException:org.junit.Test问题》:本文主要介绍解决tomcat启动时报Junit相... 目录tomcat启动时报Junit相关错误Java.lang.ClassNotFoundException

解决Maven项目报错:failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题

《解决Maven项目报错:failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题》这篇文章主要介... 目录Maven项目报错:failed to execute goal org.apache.maven.pl

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分