У меня сложная компоновка.Это займет несколько секунд, чтобы надуть его.Поэтому я хочу использовать класс AsyncLayoutInflater, чтобы надуть его.
public class VoicelessSoundFragment extends Fragment implements View.OnClickListener {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Context context = getContext();
new AsyncLayoutInflater(context)
.inflate(R.layout.fragment_voiceless_sound, container,
(view, resid, parent) -> {
ViewDataBinding binding = DataBindingUtil.bind(view);
binding.setVariable(foo.bar.BR.onClickListener, this);
parent.removeAllViews();
parent.addView(binding.getRoot());
});
TextView textView = new TextView(context);
textView.setText("Loading...");
return textView;
}
@Override
public void onClick(View v) {
MobileNavigationDirections.ActionGlobalKanaDetailFragment acton =
MobileNavigationDirections.actionGlobalKanaDetailFragment((String) v.getTag());
Navigation.findNavController(v).navigate(acton);
}
}
Но я не знаю, как правильно использовать AsyncLayoutInflater с компонентом навигации и привязкой данных.Когда я нажимаю кнопку «Назад» для перехода назад, этот фрагмент перекрывает предыдущий фрагмент, а не исчезает.Также атрибут app:autoSizeTextType="uniform"
Textview не работает, если я надуваю макет с помощью AsyncLayoutInflater вместо DataBindingUtil.
Домашний фрагмент:
Фрагмент со сложной компоновкой (текст не имеет автоматического размера):
перекрываются после перехода назад: