gpt4 book ai didi

java - onCreateView fragment 未调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:54 26 4
gpt4 key购买 nike

我有一个自定义的 DialogFragment 和一个 FrameLayout 容器,我想在其中放置一个 Fragment 但它的 View 总是返回 null ,我能做什么?

DialogCreateAccount.java

   public class DialogCreateAccount extends DialogGeneral implements OnClickListener{

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// TODO Auto-generated method stub

Dialog dialog = super.onCreateDialog(savedInstanceState);

//........


return dialog;

}


@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

Fragment fragment = CreateAccountFragment.newInstance();


FragmentTransaction ft = getFragmentManager().beginTransaction();

if(fragment.getView()!=null){ // return always null

ft.add(
getFrameContainer().getId(),
fragment
)
.commit();
}else{

}

Log.i("DialogCreateAccount", "fragment:" +fragment.getView());// return null
}

在 CreateAccountFragment.java 中

 public class CreateAccountFragment extends Fragment implements OnClickListener{

public CreateAccountFragment() {
// TODO Auto-generated constructor stub

}

public static CreateAccountFragment newInstance() {

CreateAccountFragment f = new CreateAccountFragment();

return f;
}

@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Log.i("CreateAccountFragment", "onCreate");
//onCreate is called


}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub

Log.i("CreateAccountFragment", "onCreateView");
//onCreateView not called

mRootView = inflater.inflate(R.layout.dialog_create_an_account, container, false);




return mRootView;


}
}

在 Fragment 中 onCreate 被调用,onCreateView 没有被调用。

最佳答案

fragment getView() 仅在 fragment 生命周期中运行 onCreateView() 后返回非空 View 。

仅仅实例化 fragment 对象不会调用它的任何生命周期回调。它们将在稍后执行 fragment 事务时被调用。

只是将 fragment 放入容器中,而不有条件地检查 getView() 是否返回非空。

关于java - onCreateView fragment 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25444678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com