gpt4 book ai didi

android - DialogFragment 进入动画不会在第一次显示时触发

转载 作者:行者123 更新时间:2023-11-30 01:19:17 26 4
gpt4 key购买 nike

我为对话窗口输入设置了自己的动画,但是当我在 Activity 创建后第一次调用 .show() 时它没有触发。

在下面的 gif 中,您可以看到我设置的第一次动画是下拉的,第二次是向上滑动的。

enter image description here

对话框 fragment :

public class DateChooseDialog extends DialogFragment {

public DateChooseDialog() {
// Required empty public constructor
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NORMAL, R.style.DialogFullScreen);
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.dialog_date_choose, container);
}

@Override
public void onResume() {
WindowManager.LayoutParams params = getDialog().getWindow().getAttributes();
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.gravity = Gravity.BOTTOM;
params.windowAnimations = R.style.DialogSlideAnimation;
getDialog().getWindow().setAttributes(params);
super.onResume();
}
}

动画:

<style name="DialogSlideAnimation" parent="Theme.AppCompat.Dialog">
<item name="android:windowEnterAnimation">@anim/slide_up</item>
<item name="android:windowExitAnimation">@anim/slide_down</item>
</style>

<!-- slide_up -->
<translate
android:duration="@android:integer/config_shortAnimTime"
android:fromYDelta="0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="100%"
/>

<!-- slide_down -->
<translate
android:duration="@android:integer/config_shortAnimTime"
android:fromYDelta="0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="100%"
/>

这就是我显示对话框的方式:

DateChooseDialog dateChooseDialog = new DateChooseDialog();
dateChooseDialog.show(getFragmentManager(), "date_choose");

最佳答案

问题出在键盘上。它会调整整个窗口的大小,当键盘随着向下滑动动画消失时,整个窗口会通过向下滑动自行调整大小。

请将此行添加到您的 list 中。

<activity (Your current activity)
...
android:windowSoftInputMode="adjustPan">
</activity>

通过这些行,您的键盘将覆盖窗口并且不会调整大小。下一个挑战是检测键盘是否打开以在必要时延迟动画。

祝你好运

关于android - DialogFragment 进入动画不会在第一次显示时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37367912/

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