赞
踩
ViewBinding是 Android 开发中用于替代 findViewById的功能,以更简单、安全的方式访问布局文件中的视图组件。在 Android Studio 3.6 及更高版本中,可以使用 View Binding。以下是使用 View Binding 的步骤:
1. 在模块级别的 build.gradle文件中启用 View Binding:
- android {
-
- ...
-
- buildFeatures {
-
- viewBinding true
-
- }
-
- }
1. 同步 Gradle 容器。
现在,你可以在代码中使用 View Binding。以下是在 Activity 和 Fragment 中使用 View Binding 的方法:
在 Activity 中使用 View Binding:
- import com.example.myapplication.databinding.ActivityMainBinding
-
-
-
- class MainActivity : AppCompatActivity() {
-
- private lateinit var binding: ActivityMainBinding
-
-
-
- override fun onCreate(savedInstanceState: Bundle?) {
-
- super.onCreate(savedInstanceState)
-
- binding = ActivityMainBinding.inflate(layoutInflater)
-
- setContentView(binding.root)
-
-
-
- // 使用 View Binding 访问视图组件
-
- binding.textView.text = "Hello, View Binding!"
-
- }
-
- }
ActivityMainBinding 是一个自动生成的类,它为布局文件 activity_main.xml 提供 binding 类。
在 Fragment 中使用 View Binding:
- import com.example.myapplication.databinding.FragmentExampleBinding
-
-
-
- class ExampleFragment : Fragment() {
-
- private var _binding: FragmentExampleBinding? = null
-
- private val binding get() = _binding!!
-
-
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
-
- _binding = FragmentExampleBinding.inflate(inflater, container, false)
-
- return binding.root
-
- }
-
-
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-
- super.onViewCreated(view, savedInstanceState)
-
-
-
- // 使用 View Binding 访问视图组件
-
- binding.textView.text = "Hello, View Binding in Fragment!"
-
- }
-
-
-
- override fun onDestroyView() {
-
- super.onDestroyView()
-
- _binding = null
-
- }
-
- }
在 Fragment 中,在 onDestroyView()方法内释放 binding 对象非常重要,以避免内存泄漏。
现在就可以使用生成的 View Binding 类访问和修改布局文件内的视图组件。这提供了编译时类型检查和空安全,为 Android 开发带来方便和安全性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。