Android之视图绑定ViewBinding

这篇具有很好参考价值的文章主要介绍了Android之视图绑定ViewBinding。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

视图绑定  |  Android 开发者  |  Android Developers

1、启用视图绑定

android {
        ...
        viewBinding {
            enabled = true
        }
    }
    

如果您希望在生成绑定类时忽略某个布局文件,请将 tools:viewBindingIgnore="true" 属性添加到相应布局文件的根视图中:

<LinearLayout
            ...
            tools:viewBindingIgnore="true" >
        ...
    </LinearLayout>
    

2、在 Activity 中使用视图绑定

如需设置绑定类的实例以供 Activity 使用,请在 Activity 的 onCreate() 方法中执行以下步骤:

  1. 调用生成的绑定类中包含的静态 inflate() 方法。此操作会创建该绑定类的实例以供 Activity 使用。
  2. 通过调用 getRoot() 方法或使用 Kotlin 属性语法获取对根视图的引用。
  3. 将根视图传递到 setContentView(),使其成为屏幕上的活动视图。
 private lateinit var binding: ResultProfileBinding

    override fun onCreate(savedInstanceState: Bundle) {
        super.onCreate(savedInstanceState)
        binding = ResultProfileBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)
    }
    

3、在 Fragment 中使用视图绑定

如需设置绑定类的实例以供 Fragment 使用,请在 Fragment 的 onCreateView() 方法中执行以下步骤:文章来源地址https://www.toymoban.com/news/detail-479875.html

  1. 调用生成的绑定类中包含的静态 inflate() 方法。此操作会创建该绑定类的实例以供 Fragment 使用。
  2. 通过调用 getRoot() 方法或使用 Kotlin 属性语法获取对根视图的引用。
  3. 从 onCreateView() 方法返回根视图,使其成为屏幕上的活动视图。
    private var _binding: ResultProfileBinding? = null
    private val binding get() = _binding!!

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        _binding = ResultProfileBinding.inflate(inflater, container, false)
        return binding.root
    }

    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
    }
    

4、自定义Dialog中使用

public class MyDialog extends Dialog {
 
    protected View mView;
    protected DialogBottomBinding mBinding;
    
    public MyDialog(@NonNull Context context, @StyleRes int themeResId) {
        super(context, themeResId);
 
        //原来的写法
        // mView = View.inflate(getContext(), getLayoutId(), null);
 
        //使用ViewBinding的写法
        mBinding = DialogBottomBinding.inflate(getLayoutInflater());
        mView = mBinding.getRoot();
        
        setContentView(mView);
    }
}

5、在自定义View中使用

// 自定义view
public class MyLinearLayout extends LinearLayout {
    public MyLinearLayout(Context context) {
        this(context, null);
    }
 
    public MyLinearLayout(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs, 0);
    }
 
    public MyLinearLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
 
        // 正常添加布局(亲测有效)
        ViewMyLayoutBinding binding = LibPlateformLayoutBinding.inflate(LayoutInflater.from(getContext()), this, true);

        // 方法二:
        // val root = View.inflate(context, R.layout.widget_core, this)
        // binding = WidgetCoreBinding.bind(root)
 
        // 针对根标签为merge
        ViewMyLayoutMergeBinding binding = ViewMyLayoutMergeBinding.inflate(LayoutInflater.from(getContext()), this);
    }
 
}

6、在RecyclerView.Adapter中使用

class StudentAdapter(private val context: Context,
                     private val list: List<AddressInfo>) : RecyclerView.Adapter<ItemViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
        val studentBinding = ItemAddressBinding.inflate(LayoutInflater.from(
            context), parent, false)
        return ItemViewHolder(studentBinding)
    }

    @SuppressLint("SetTextI18n")
    override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
        holder.itemBinding.tvName.text = "姓名:" + list[position].name
    }

    override fun getItemCount(): Int {
        return list.size
    }

    inner class ItemViewHolder(var itemBinding: ItemAddressBinding) : RecyclerView.ViewHolder(
        itemBinding.root)
}

到了这里,关于Android之视图绑定ViewBinding的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringMVC 参数绑定(视图传参到控制器)

    ✅作者简介:2022年 博客新星 第八 。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:SSM 框架从入门到精通 ✨特色专栏:国学周更-心性养成之路 🥭本文内容:SpringMVC 参数绑定

    2024年01月19日
    浏览(38)
  • 五、C#与数据库交互(数据绑定与数据视图控件)

    在C#中,与数据库进行交互是常见的任务,尤其是在.NET环境中。你可以使用ADO.NET,Entity Framework或Dapper等框架来实现与数据库的交互。以下是一个简单的例子,展示如何使用ADO.NET来从数据库中获取数据并绑定到Windows Forms应用程序中的DataGridView控件。 添加数据库连接 首先,你

    2024年01月25日
    浏览(45)
  • Android -- 下拉列表、列表视图、网格视图

    Spinner 用于从一串列表中选择某项,功能类似于单选按钮的组合 下拉列表的展示 方式有两种,一种是在当前下拉框的正下方弹出列表框,此时要把spinnerMode属性设置为 dropdown,另一种是在页面中部弹出列表对话框,此时要把spinnerMode属性设置为dialog。 dropdown 下拉模式       

    2023年04月08日
    浏览(38)
  • ViewBinding用法

    通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。 在大多数情况下,视图绑定会替代 findViewById 。 注意:视图

    2023年04月15日
    浏览(30)
  • Android学习之路(2) 设置视图

    ​ 在Android开发中,可以使用LayoutParams类来设置视图(View)的宽度和高度。LayoutParams是一个用于布局的参数类,用于指定视图在父容器中的位置和大小。 ​ 下面是设置视图宽度和高度的示例代码: ​ 在上述代码中,width和height分别代表要设置的视图的宽度和高度,可以是具

    2024年02月13日
    浏览(30)
  • android视图动画(ViewAnimation动画)

    通过xml文件资源定义好,然后用工具函数加载,并给对应的view设置该动画,调用startAnimation方法开启动画效果 androidStudio新建xml动画资源 使用java对象来new一个动画对象,然后设置相关属性,调用该对象实例的startAnimation方法来开启动画效果 Xml文件定义View动画属性 通过xml来定

    2023年04月10日
    浏览(54)
  • 【Android从零单排系列十七】《Android视图控件——WebView》

    目录 前言 一 WebView基本介绍 二 WebView使用方法 三 WebView常见属性及方法 四 简单案例 五 总结 小伙伴们,在上文中我们介绍了Android视图组件ProgressDialog,本文我们继续盘点,介绍一下视图控件的WebView。 WebView是Android平台上的一个控件,用于在应用程序中显示Web页面 在布局文

    2024年02月11日
    浏览(57)
  • 【Android从零单排系列十四】《Android视图控件——RatingBar》

    目录 前言 一 RatingBar基本介绍 二 RatingBar使用方法 三 RatingBar常用属性方法 四 总结 小伙伴们,在上文中我们介绍了Android视图组件ProgressBar,本文我们继续盘点,介绍一下视图控件的RatingBar。 RatingBar是Android平台上的一个UI组件,用于让用户通过评级操作选择分数或等级。 R

    2024年02月12日
    浏览(35)
  • 【Android笔记108】Android之翻转视图组件ViewFlipper的使用

    这篇文章,主要介绍Android之翻转视图组件ViewFlipper的使用。 目录 一、翻转视图ViewFlipper 1.1、什么是ViewFlipper 1.2、运行效果 (1)不带动画的效果

    2024年02月08日
    浏览(52)
  • 【Android从零单排系列十八】《Android视图控件——VideoView》

    目录 前言 一 VideoView基本介绍 二 VideoView使用方法 三 VideoView常见属性及方法 四 VideoView简单Demo 五 总结 小伙伴们,在上文中我们介绍了Android视图组件WebView,本文我们继续盘点,介绍一下视图控件的VideoView。 videoView是Android平台上用于播放视频的控件,它提供了一些常见属性

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包