首页
学习
活动
专区
工具
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不会上升的问题。

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

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

相关·内容

三句代码创建全屏Dialog或者DialogFragment:带你从源码角度实现全屏Dialog

Dialog是APP开发中常用的控件,同Activity类似,拥有独立的Window窗口,但是Dialog跟Activity还是有一定区别的,最明显的就是:默认情况下Dialog不是全屏的,所以布局实现不如Activity舒服,比如顶部对齐,底部对齐、边距、宽度、高度等。如果将Dialog定义成全屏的就会省去很多问题,可以完全按照常用的布局方式来处理。网上实现方式有不少,一般情况下也都能奏效,不过可能会有不少疑虑,比如:为什么有些窗口属性(隐藏标题)必须要在setContentView之前设置才有效,相反,也有些属性(全屏)要在之后设置才有效。这里挑几个简单的实现方式,然后说下原因,由于Android的窗口管理以及View绘制是挺大的一块,这里不过多深入。先看实现效果:

04

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券