Android Livedata观察不到视图

Android Livedata观察不到视图,android,android-activity,mvvm,view,fragment,Android,Android Activity,Mvvm,View,Fragment,我有下面的活动结构,我想观察实时数据,根据数据,我想更改片段。第一个add fragment调用可以正常工作,但是observe块下的调用不能正常工作,因为它确实看到activity\u login视图未设置,因此无法在其中找到framelayout。我应该在哪里观察实时数据以确保视图已设置。我尝试了ViewCreate等,但找不到方法 public class LoginActivity extends AppCompatActivity { private LoginViewModel lo

我有下面的活动结构,我想观察实时数据,根据数据,我想更改片段。第一个add fragment调用可以正常工作,但是observe块下的调用不能正常工作,因为它确实看到activity\u login视图未设置,因此无法在其中找到framelayout。我应该在哪里观察实时数据以确保视图已设置。我尝试了ViewCreate等,但找不到方法

public class LoginActivity extends AppCompatActivity {
private LoginViewModel loginViewModel;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    loginViewModel = ViewModelProviders.of(this, new LoginViewModelFactory(getApplication(),
            LoginRepository.getInstance())).get(LoginViewModel.class);

    FragmentUtil.addFragment(getSupportFragmentManager(), R.id.entry_frame, new LoginFragment(), FragmentTag.LOGIN_FRAGMENT_TAG);

    loginViewModel.getCurrentFragmentEnum().observe(this, (currentFragmentEnum) -> {
        if (currentFragmentEnum == LoginActivityFragments.REGISTER_FRAGMENT) {
            FragmentUtil.addFragment(Objects.requireNonNull(getSupportFragmentManager()), R.id.entry_frame, new RegisterFragment(), FragmentTag.REGISTER_FRAGMENT_TAG);
        } else if (currentFragmentEnum == LoginActivityFragments.LOGIN_FRAGMENT) {
            FragmentUtil.addFragment(Objects.requireNonNull(getSupportFragmentManager()), R.id.entry_frame, new LoginFragment(), FragmentTag.LOGIN_FRAGMENT_TAG);
        }
    });
}
}
登录碎片

public class LoginFragment extends Fragment {
private LoginViewModel loginViewModel;

public LoginFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_login, container, false);
    FragmentLoginBinding fragmentLoginBinding = DataBindingUtil.setContentView(getActivity(), R.layout.fragment_login);
    loginViewModel = ViewModelProviders.of(this, new LoginViewModelFactory(getActivity().getApplication(),
            LoginRepository.getInstance())).get(LoginViewModel.class);
    fragmentLoginBinding.setViewModel(loginViewModel);
    fragmentLoginBinding.executePendingBindings();
    return view;
}
}

但是那些在observe块下的没有,因为它确实看到活动\u登录视图未设置
这意味着什么?你可以发布你的
addFragment
codeiadded,当观测者触发它时,它应该执行代码块来改变片段,但在那个时候,布局还并没有设置好。