Как перейти от LayoutInflater к AsyncLayoutInflater во фрагменте диалога? - PullRequest
0 голосов
/ 04 июля 2019

Я использую фрагмент диалога в проекте, но клиент хотел, чтобы фон позади фрагмента диалога был размыт, когда фрагмент активен.Я использовал библиотеку 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
    }
...