【发布时间】:2021-04-27 17:17:23
【问题描述】:
在发现我的onCreateView 花了将近一秒钟的时间执行inflater.inflate(...) 方法后,我搜索了一下,发现了一个新的类,AsyncLayoutInflater。
我试图在我的片段中实现这个构造函数,但我不知道如何正确实现它,因为它总是导致一个空的空白视图。
我认为我的问题是如何膨胀我的片段,并从onCreateView 返回一个空视图(super 结果)。
这是有效的“正常”版本:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_intervento_luogo, container, false);
//do my stuffs
return view;
}
这不会显示一个空视图:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
AsyncLayoutInflater asyncLayoutInflater = new AsyncLayoutInflater(getContext());
asyncLayoutInflater.inflate(R.layout.fragment_intervento_luogo, container, new AsyncLayoutInflater.OnInflateFinishedListener() {
@Override
public void onInflateFinished(@NonNull View view, int resid, @Nullable ViewGroup parent) {
// do my stuffs
}
});
return super.onCreateView(inflater, container, savedInstanceState);
}
我也尝试将这个异步充气器放在 onResume、onViewCreated 和 onCreate 中,但没有人工作。
我应该如何正确地实现它?我不敢相信没有办法跳过 onCreateView 内部的通货膨胀,异步进行。
谢谢大家
【问题讨论】: