【发布时间】:2022-01-02 01:11:48
【问题描述】:
所以,我正在尝试从 kotlin 合成迁移到 Jetpack 视图绑定。
这是 kotlin 合成代码(工作正常),它只是将片段的父活动中 TextView 的可见性设置为不可见。
import kotlinx.android.synthetic.main.activity_main.*
class FirstFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_first, container, false)
requireActivity().textView.visibility = View.INVISIBLE
return view
}
}
这是我正在做的迁移:
import com.mypc.myapp.databinding.FragmentFirstBinding
import com.mypc.myapp.databinding.ActivityMainBinding
class FirstFragment : Fragment() {
private var _binding: FragmentFirstBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentFirstBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.textView.visibility = View.INVISIBLE
binding.textview.setOnClickListener {
Navigation.findNavController(view).navigate(R.id.goto_secondfragment)
}
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
我在“textview”处收到错误为“未解决的参考”:
binding.textView.visibility = View.INVISIBLE
在:
binding.textview.setOnClickListener {
Navigation.findNavController(view).navigate(R.id.goto_secondfragment)
}
显然编译器无法找到 Activity 中的 TextView 我已经添加了这一行:
import com.mypc.myapp.databinding.ActivityMainBinding
【问题讨论】:
标签: android kotlin android-jetpack android-viewbinding