ViewBinding 的使用

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 开发带来方便和安全性。

猜你喜欢

转载自blog.csdn.net/Waterme10n/article/details/130589014