首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当软键盘打开时,DialogFragment不会上升

是因为DialogFragment默认是以Dialog的形式显示在屏幕上的,而软键盘的弹出会导致屏幕高度减小,从而导致DialogFragment被软键盘遮挡住。

为了解决这个问题,可以通过设置DialogFragment的windowSoftInputMode属性来调整软键盘的行为。具体来说,可以使用以下两种方式:

  1. 在DialogFragment的onCreate方法中设置windowSoftInputMode属性:@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NORMAL, R.style.DialogFragmentStyle); } @Override public void onStart() { super.onStart(); getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); }在上述代码中,通过调用setStyle方法设置DialogFragment的样式为STYLE_NORMAL,并在onStart方法中通过getDialog().getWindow().setSoftInputMode方法设置windowSoftInputMode属性为SOFT_INPUT_ADJUST_RESIZE,表示当软键盘弹出时,DialogFragment会自动调整大小以适应屏幕。
  2. 在DialogFragment的样式文件中设置windowSoftInputMode属性: 在res/values/styles.xml文件中定义一个样式,如下所示:<style name="DialogFragmentStyle" parent="Theme.AppCompat.Light.Dialog"> <item name="android:windowSoftInputMode">adjustResize</item> </style>然后在DialogFragment的onCreate方法中调用setStyle方法设置DialogFragment的样式:@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NORMAL, R.style.DialogFragmentStyle); }通过上述方式,可以将DialogFragment的样式设置为自定义的DialogFragmentStyle样式,并在该样式中设置windowSoftInputMode属性为adjustResize,从而实现当软键盘弹出时,DialogFragment会自动调整大小以适应屏幕。

总结起来,通过设置DialogFragment的windowSoftInputMode属性为SOFT_INPUT_ADJUST_RESIZE或在样式文件中设置windowSoftInputMode属性为adjustResize,可以解决当软键盘打开时,DialogFragment不会上升的问题。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发笔记(一百四十八)自定义输入法软键盘

    手机上输入文字,都是通过系统自带的软键盘,这个软键盘可以是Android自带的,也可以是第三方软键盘如搜狗输入法。多数情况下面,系统自带的软键盘已经够用了,可是总有少数情况,系统软键盘无法满足开发者的要求,比如以下几个需求,系统软键盘就无法处理: 1、像手机号码与支付密码,只需要输入数字,连标点符号都不需要。然而系统软键盘即使切换到123数字模式,依旧显示包括标点符号在内的冗余按键。 2、系统软键盘固定在屏幕下方弹出,无法做为控件嵌入到页面布局中,更无法指定软键盘的显示位置。 3、系统软键盘会自动响应EditText的焦点变更事件,常常在意料之外突然之间蹦出来,弄得开发者要么剥夺EditText的焦点,要么强行关闭软键盘显示,但无论哪种方式都得开发者强行**,很不方便。 基于以上情况,要想满足这些定制需求,只能对输入法自定义软键盘了。全数字的软键盘界面倒也简单,下面先来个数字键盘的效果图。

    03

    响应视窗属性动画 | 让您的软键盘动起来 (二)

    .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.5;margin-top:35px;margin-bottom:10px;padding-bottom:5px}.markdown-body h1{font-size:30px;margin-bottom:5px}.markdown-body h2{padding-bottom:12px;font-size:24px;border-bottom:1px solid #ececec}.markdown-body h3{font-size:18px;padding-bottom:0}.markdown-body h4{font-size:16px}.markdown-body h5{font-size:15px}.markdown-body h6{margin-top:5px}.markdown-body p{line-height:inherit;margin-top:22px;margin-bottom:22px}.markdown-body img{max-width:100%}.markdown-body hr{border:none;border-top:1px solid #ddd;margin-top:32px;margin-bottom:32px}.markdown-body code{word-break:break-word;border-radius:2px;overflow-x:auto;background-color:#fff5f5;color:#ff502c;font-size:.87em;padding:.065em .4em}.markdown-body code,.markdown-body pre{font-family:Menlo,Monaco,Consolas,Courier New,monospace}.markdown-body pre{overflow:auto;position:relative;line-height:1.75}.markdown-body pre>code{font-size:12px;padding:15px 12px;margin:0;word-break:normal;display:block;overflow-x:auto;color:#333;background:#f8f8f8}.markdown-body a{text-decoration:none;color:#0269c8;border-bottom:1px solid #d1e9ff}.markdown-body a:active,.markdown-body a:hover{color:#275b8c}.markdown-body table{display:inline-block!important;font-size:12px;width:auto;max-width:100%;overflow:auto;border:1px solid #f6f6f6}.markdown-body thead{background:#f6f6f6;color:#000;text-align:left}.markdown-body tr:nth-child(2n){background-color:#fcfcfc}.markdown-body td,.markdown-body th{padding:12px 7px;line-height:24px}.markdown-body td{min-width:120px}.markdown-body blockquote{color:#666;padding:1px 23px;margin:22px 0;border-left:4px solid #cbcbcb;background-color:#f8f8f8}.markdown-body blockquote:after{display:block;content:""}.markdown-body blockquote>p{margin:10px 0}.markdown-body ol,.markdown-body ul{padding-left:28px}.markdown-body ol li,.markdown-body

    02
    领券