dialog弹窗显示不全

2024-06-17 20:20
文章标签 dialog 弹窗 不全 显示

本文主要是介绍dialog弹窗显示不全,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

弹框显示不全,编辑框不可见

打开可编辑的dialog对话框后,编辑view获取到焦点弹出软键盘输入时,由于屏幕分辨率和屏幕高度问题,导致软键盘高度太高向上挤压dialog对话框,当dialog对话框被向上挤压到状态栏位置时,dialog对话框的高度会自动减小,最终会遮挡住dialog对话框中的部分控件造成显示不全的问题,出现这种现象时,对话框中的可编辑控件的根布局使用一个scrollview控件包裹了子view,比如EditText,并且控件的高度设置成了包裹内容,dialog对话框高度降低,会使scrollveiw的高度降低,挤压了可显示区域的大小

出现这种情况时,dialog对话框与软键盘没有发生重叠覆盖的情况,这也是dialog对话框高度降低的原因之一,解决办法如下

软键盘弹出导致导致dialog对话框显示不全,可以修改软键盘的输入模式,使软键盘与dialog对话框重叠,防止软键盘挤压dialog弹框的可视空间

方法一,修改manifest.xml文件配置

<!--在Manifest.xml文件中给要弹出dialog的Activity配置软键盘输入模式-->
<activityandroid:name=".MainActivity"android:exported="true"android:windowSoftInputMode="adjustNothing"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
</activity>

方法二,修改Activity

//在Activity的onCreate函数中,调用setContentView之前添加软件盘输入模式
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);

方法三,从Fragment中弹出Dialog

//在Fragment中点击Button或开关打开可编辑的dialog并弹出软件盘,通过监听根布局的UI变化,监听到dialog view可见时,设置dailog的输入模式
//此方法最好是写到fragment的onResume()函数中,此时所有的View及控件都已初始化完毕
View decorView = getActivity().getWindow().getDecorView();
ViewTreeObserver observer = decorView.getViewTreeObserver();
//监听全局的布局变化
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {//自定义的可编辑dialogValidatedEditTextPreference editText = (ValidatedEditTextPreference)getPreferenceScreen().findPreference("device_name");if (editText != null) {//获取dialogAlertDialog dialog = (AlertDialog) editText.getDialog();if (dialog != null) //设置dialog窗口软键盘的输入模式dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);}}}
});

这篇关于dialog弹窗显示不全的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

据阿谱尔APO Research调研显示,2023年全球髓内钉市场销售额约为4.7亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球髓内钉市场销售额约为4.7亿美元,预计在2024-2030年预测期内将以超过3.82%的CAGR(年复合增长率)增长。 髓内钉市场是指涉及髓内钉制造、分销和销售的行业。髓内钉是一种用于整形外科手术的医疗器械,用于稳定长骨骨折,特别是股骨、胫骨和肱骨。髓内钉通常由不銹钢或钛等材料制成,并插入骨的髓管中,以在愈合过程中提供结构支

vue+elementUI下拉框联动显示

<el-row><el-col :span="12"><el-form-item label="主账号:" prop="partyAccountId" :rules="[ { required: true, message: '主账号不能为空'}]"><el-select v-model="detailForm.partyAccountId" filterable placeholder="

vue+elementui--$message提示框被dialog遮罩层挡住问题解决

最近碰到一个先执行this.$message提示内容,然后接着弹出dialog带遮罩层弹框。那么问题来了,message提示框会默认被dialog遮罩层挡住,现在就是要解决这个问题。 由于都是弹框,问题肯定是出在z-index比重问题。由于用$message方式是写在js中而不是写在html中所以不是很好直接去改样式。 不过好在message组件中提供了customClass 属性,我们可以利用

温湿度采集及OLED显示

目录 软件I2C和硬件I2C每隔2秒钟采集一次温湿度数据,显示到OLED上,同时通过串口发送到上位机的“串口助手”软件 软件I2C和硬件I2C "I2C"代表Inter-Integrated Circuit,是一种用于在数字电路之间进行通信的串行通信协议。软件I2C和硬件I2C是两种实现这种协议的方式。 软件I2C是通过软件来模拟I2C通信协议的实现方式。在这种情况下,微控制

Linux之时间显示

在linux中使用使用date的方式来显示时间,但是如果想按照自己想要的格式展示,那就需要加上一点参数了 显示当前时间 date 2024年 06月 23日 星期日 23:21:42 CST 显示当前年份 date +%Y 2024 显示当前月份 date +%m 6 显示当前日期 date +%d 23 自定义显示格式 date "+%Y-%m-%d

Android Log日志 - 打印不全问题

AndroidStudio在打印Log的时候目前支持4*1024长度,超出部分不能打印。当你在各种百度之后有对应的解决办法,但是每次都是部分代码,看着都忧伤。索性此次项目调试的数据也是比较多滴,目前就准备对Log开刀来写一个Log类,还是如以往的性格直接写完整的类,方便需要的人用。反正又不是什么高深的东西,为了给被方便同时也是给自己方便。 /*** Relin* 2019-07-10 10:40

【QML】用 Image(QQuickPaintedItem) 显示图片

大体功能: 频繁地往界面推送图片,帧率达到视频效果。捕获画布上的鼠标事件和键盘事件。 代码如下: // DrawImageInQQuickPaintedItem.pro 代码如下:QT += quick# You can make your code fail to compile if it uses deprecated APIs.# In order to do so, uncom

卧槽,6。套死你猴子,Tomcat访问html页面显示源码?

卧槽,6。Tomcat访问html页面显示源码? 元凶text/explain //踩坑!!!不能用 servletResponse.setContentType("text/explain,否则访问html会看到源码,而不是渲染页面; charset=UTF-8");servletResponse.setContentType("text/html; charset=UTF-8");

加载网络图片显示大图

1.将图片的uri列表和下标传给ImagePagerActivity public void imageBrower(int position, ArrayList<String> urls2) {Intent intent = new Intent(this, ImagePagerActivity.class); intent.putExtra(ImagePagerActivity