gpt4 book ai didi

android - DatePickerDialog 在屏幕旋转时保存布局

转载 作者:太空宇宙 更新时间:2023-11-03 13:50:15 27 4
gpt4 key购买 nike

我有一个奇怪的问题。我从 AppCompatActivity 继承了 Activity,里面有 Fragment。在这个 Fragment 中,我显示了 DatePickerDialog 来选择日期。

manifest.xml 中声明的 Activity

<activity name=".SampleActivity" android:configChanges="keyboardHidden|orientation|screenLayout|screenSize" />

现在。我想在 Fragment 中显示 DatePickerDialog 所以我创建了自定义 DatePickertFragment 代码:

public class DatePickerFragment extends AppCompatDialogFragment{
// (...)
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
DatePickerDialog dialog = new DatePickerDialog(getActivity(), this, year, month, day);
return dialog;
}
// (...)
}

并在 fragment 中执行 show() 方法

 pickerFragment.show(getChildFragmentManager(), null);

我在 onClick() 方法中运行显示选择器代码。 DatePicker 正确显示。

现在是问题。Dialog 在纵向屏幕方向上正确显示,但当我将屏幕旋转到横向模式时,对话框似乎被左右切割。我检查了一下,我想 Dialog 选择器不会在屏幕旋转时改变布局方向。截图如下1.纵向,正确的对话 enter image description here

  1. 接下来我旋转设备并在横向模式下我得到类似剪切对话框的东西(对话框纵向布局尺寸中的横向对话框布局) enter image description here

我将 manifest.xml Activity 声明更改为

android:configChanges="keyboardHidden|orientation" 
现在可以正常工作,但我不能这样做,因为其他应用程序部分将无法正常工作。所以我想知道是否可以在旋转屏幕后使 DialogPicker 无效或重绘以调整其边界大小?

最佳答案

使用 onConfigurationChanged(Configuration newConfig) 处理日历裁剪问题检查我的代码 100% 使用 screenSize。 startDateDpd 是日期选择器对话框,startDateTxt - 单击此日期选择器对话框打开

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(startDateDpd!=null)
if(startDateDpd.isVisible()){
startDateDpd.dismiss();
startDateTxt.performClick();
}
}

关于android - DatePickerDialog 在屏幕旋转时保存布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com