我正在使用android兼容性库(v4修订版8)。在自定义DialogFragment中,未调用重写的onViewCreated方法。

public class MyDialogFragment extends DialogFragment{
    private String mMessage;
    public MyDialogFragment(String message) {
        mMessage = message;
    }

    @Override
    public Dialog onCreateDialog( Bundle savedInstanceState){
        super.onCreateDialog(savedInstanceState);
        Log.d("TAG", "onCreateDialog");
        setRetainInstance(true);
        //....do something
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        Log.d("TAG", "onViewCreated");
        //...do something
    }
}

onViewCreated没有得到记录。

最佳答案

好吧,onViewCreated状态的文档“在onCreateView(LayoutInflater,ViewGroup,Bundle)返回后立即调用”。

DialogFragment使用onCreateDialog而不是onCreateView,因此不会触发onViewCreated。 (将是我的工作理论,我没有深入研究android来确认)。

10-08 15:28