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: NewsContentFragBinding
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = NewsContentFragBinding.inflate(R.layout.news_content_frag)
        setContentView(binding.root)
        // 使用 View Binding 访问视图组件
        binding.textView.text = "Hello, View Binding!"
    }
}

View Binding 会为每一个activity文件生成一个绑定类,类的名称 NewsContentFragBinding 是一个自动生成的类,它为布局文件 news_content_frag.xml 提供 binding 类。

在 Fragment 中使用 View Binding:

import com.example.myapplication.databinding.FragmentExampleBinding
 
class NewsContentFragment : Fragment() {
    private var _binding: NewsContentFragBinding? = null
    private val binding get() = _binding!!
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        _binding = NewsContentFragBinding.inflate(R.layout.news_content_frag, 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!"
     }
    fun refresh(title:String,content:String){
        binding.contentLayout.visibility = View.VISIBLE
        binding.newsTitle.text = title
        binding.newsContent.text = content
    }
    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
    }
}

在 Fragment 中,在 onDestroyView()方法内释放 binding 对象非常重要,以避免内存泄漏。

现在就可以使用生成的 View Binding 类访问和修改布局文件内的视图组件。这提供了编译时类型检查和空安全,为 Android 开发带来方便和安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值