小编udd*_*aba的帖子

为什么 onViewCreated 在使用导航组件的 android 应用程序中被调用两次

我有一个简单的应用程序,其中包含一个活动和大约 4 个片段。我正在使用 android 导航组件。每次更改片段时,从我的飞溅片段开始到下一个片段, OnCreateview 和 onViewCreated 被调用两次,一次是最初创建片段时,第二次是我使用findnavController.navigate(). 我不知道为什么它会被调用两次,任何人都可以说明原因。这是我的飞溅课。

class SplashFragment : Fragment(), SocketConnection.SocketCallbacks {

    lateinit var binding: SplashFragmentBinding


    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        Timber.d("on View created")
        SocketConnection.getInstance.socketConnectionListener(this)

    }


    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        Timber.d("on create view")
        binding = DataBindingUtil.inflate(inflater, R.layout.fragment_splash, container, false)
        return binding.root
    }

    override fun onResume() {
        super.onResume()
        Timber.d("On resume")
        activity?.setupBackButton(false)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Timber.d("On create")
        setHasOptionsMenu(false)
    }
    
    override …
Run Code Online (Sandbox Code Playgroud)

android android-architecture-navigation android-navigation-graph

8
推荐指数
2
解决办法
1566
查看次数