Livedata не запускается во фрагменте после изменения конфигурации - PullRequest
0 голосов
/ 20 января 2019

После изменения конфигурации наблюдатель больше не срабатывает в моем фрагменте.Я действительно не могу понять, чего мне не хватает в коде (он использует новейшие библиотеки поддержки androidx).

Активность:

@Override
protected void onCreate(Bundle savedInstanceState) {

    FragmentManager fragMgr = getSupportFragmentManager();
    itemListFragment = (ItemListFragment) fragMgr.findFragmentById(R.id.container_fragment_items);

    if (itemListFragment == null) {
    itemListFragment = ItemListFragment.newInstance();
    fragMgr.beginTransaction()
            .add(R.id.container_fragment_items, itemListFragment)
            .commit();
    }
...

Фрагмент:

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_item_list, container, false);

    mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class);
    mainViewModel.getAllItems().observe(getViewLifecycleOwner(), items -> adapter.setItems(items));
...

MainViewModel:

public class MainViewModel extends AndroidViewModel {

    private MainRepository mMainRepository;
    private LiveData<List<Item>> mAllItems;

    public MainViewModel(Application application) {
        super(application);
        mMainRepository = new MainRepository(application);
        mAllItems = mMainRepository.getAll();
    }

    public LiveData<List<Item>> getAllItems() {
        return mAllItems;
    }
...
...