Я попытался сделать некоторую работу с фрагментами. Я помещаю макет просмотра макроса в макет и запускаю обзор маклера в onCreateView
моего фрагмента. Наконец, я установил динамический pos ресивера с его предметами.
У меня есть такой код, чтобы он работал правильно с commitNow
и postDelayed
даже с задержкой в 0 мельниц, но я не знаю почему:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.parentLayout, popupFragment)
.commitNow();
new Handler().postDelayed(()->popupFragment.show(), 0);
Но я попытался:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.parentLayout, popupFragment)
.commitNow();
popupFragment.show();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.parentLayout, popupFragment)
.commitNowAllowingStateLoss();
popupFragment.show();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.parentLayout, popupFragment)
.runOnCommit(()->popupFragment.show())
.commitNowAllowingStateLoss();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.parentLayout, popupFragment)
.runOnCommit(()->popupFragment.show())
.commitNow();
Все они получают неинициализированную высоту.
На мой взгляд, это примерно postDelayed
, что делает код работающим в следующем цикле, однако, runOnCommit
, кажется, также сначала делает коммит, а затем запускает исполняемый файл, почему это не работает?