Я использую фрагмент диалога в проекте, но клиент хотел, чтобы фон за фрагментом диалога был размыт, когда фрагмент активен. Я использовал библиотеку BlurKit, которая добавляет этот эффект полупрозрачности из iOS, но, хотя она совсем не отстает от моего приложения, инфляция макета диалогового фрагмента теперь немного медленнее, чтобы признать. По сути, быстрое размытие происходит в основном действии, затем сразу же отображается фрагмент диалога, но с задержкой около 0,8 секунды. При отключении этого эффекта размытия фрагмент отображается почти мгновенно.
Я искал в Интернете решение и узнал об AsyncLayoutInflater, который относительно быстрее. Как я могу преобразовать свой код для этого асинхронного инфлятора, чтобы увидеть, решает ли это короткую задержку с включенным размытием.
public class ExpenseDialogFragment extends DialogFragment{
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.dialog_fragment_expense, container, false);
getViewReferences(view);
setCancelable(false);
return view;
}
@Override
public void onResume() {
super.onResume();
WindowManager.LayoutParams layoutParams = Objects.requireNonNull(
Objects.requireNonNull(getDialog()).getWindow()).getAttributes();
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
Objects.requireNonNull(getDialog().getWindow()).setAttributes(layoutParams);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//stuff here
}