Я пытаюсь создать фрагмент, который будет помещен в ViewPager, который будет взаимодействовать с TabLayout. Однако при реализации MVVM в функции onCreate () я пытаюсь создать ViewModel для фрагмента, но я не могу использовать ViewModelProvider для этого, поскольку он не принимает Fragment в качестве аргумента конструктора. Вот код:
package com.example.myfirstapp;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelStoreOwner;
public class TabContaFragment extends Fragment {
private static final String TAG = "TabConta";
private MainViewModel pageViewModel;
public TabContaFragment() {
// Required empty public constructor
}
public static TabContaFragment newInstance() {
return new TabContaFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pageViewModel = new ViewModelProvider(this).get(MainViewModel.class);
pageViewModel.setIndex(TAG);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.tab_conta_fragment, container, false);
return root;
}
}
Android Studio выдаёт мне эту ошибку:
Cannot resolve constructor ViewModelProvider(com.example.myfirstapp.TabContaFragment)
TabContaFragment наследует Fragment, который реализует ViewModelStoreOwner, что делает его действительным аргументом для конструктора ViewModelProvider. Однако, по-видимому, это не так.