小编Apo*_*ava的帖子

当 getView() 为 null 时,即 onCreateView() 之前或 onDestroyView() 之后,无法访问 Fragment View 的 LifecycleOwner

我的应用程序中有一个名为 HomeFragment 的片段。以下是它的代码:

\n
import android.Manifest\nimport android.app.Activity\nimport android.app.AlertDialog\nimport android.content.Intent\nimport android.content.pm.PackageManager\nimport androidx.lifecycle.ViewModelProvider\nimport android.os.Bundle\nimport androidx.fragment.app.Fragment\nimport android.view.LayoutInflater\nimport android.view.View\nimport android.view.ViewGroup\nimport androidx.core.content.ContextCompat\nimport androidx.fragment.app.viewModels\nimport androidx.lifecycle.Observer\nimport com.example.weatherapp.R\nimport com.example.weatherapp.WeatherApplication\nimport com.example.weatherapp.utils.GPS_REQUEST_CHECK_SETTINGS\nimport com.example.weatherapp.utils.GpsUtil\nimport com.example.weatherapp.utils.SharedPreferenceHelper\nimport com.example.weatherapp.utils.observeOnce\nimport com.google.android.material.snackbar.Snackbar\nimport kotlinx.android.synthetic.main.home_fragment.view.*\n\nclass HomeFragment : Fragment() {\n\n    private lateinit var homeView: View\n    private var isGPSEnabled = false\n    private lateinit var prefs: SharedPreferenceHelper\n\n    private val viewModel by viewModels<HomeViewModel> {\n        HomeViewModel.HomeFragmentViewModelFactory(\n            (requireContext().applicationContext as WeatherApplication).weatherRepository,\n            requireActivity().application\n        )\n    }\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        prefs = SharedPreferenceHelper.getInstance(requireContext())\n        GpsUtil(requireContext()).turnGPSOn(object : GpsUtil.OnGpsListener {\n            override fun gpsStatus(isGPSEnabled: Boolean) {\n                this@HomeFragment.isGPSEnabled = isGPSEnabled\n …
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle android-fragments kotlin lifecycleowner

3
推荐指数
1
解决办法
7592
查看次数