导航操作虽然存在但无法找到

时间:2021-02-18 23:15:49

标签: android android-studio kotlin

我有一个带有按钮的片段设置,当按下按钮时,该按钮导航到片段扫描仪。扫描仪片段应导航回扫描仪并传递图像分析器的输出(二维码)。

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    // Inflate the layout for this fragment
    var view = inflater.inflate(R.layout.fragment_scanner, container, false)

    var previewView = view.findViewById<View>(R.id.previewView)
    cameraExecutor = Executors.newSingleThreadExecutor()
    cameraProviderFuture = ProcessCameraProvider.getInstance(this.context!!)

    cameraProviderFuture.addListener(Runnable {
        val cameraProvider = cameraProviderFuture.get()
        bindPreview(cameraProvider, view) {
            val bundle = Bundle().apply {
                putString("param1", p1)
                putString("param2", p2)
            }
            findNavController().navigate(R.id.action_scanner_to_setup, bundle)            }
    }, ContextCompat.getMainExecutor(this.context!!) )

    return view
}

我已将操作从 Scanner 正确设置为 Setup,事实上,如果我尝试在该 Runnable 块之外进行导航(),它会起作用。

Nav graph and error

我做错了什么?

1 个答案:

答案 0 :(得分:1)

尝试在内部添加导航

Handler(Looper.getMainLooper()).post {
            //Here
        }

或者如果你能得到活动

this.runOnUiThread {
     //Here
}
相关问题