首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在片段中使用视图绑定在哪里更好?(onCreateView vs onViewCreated)

在片段中使用视图绑定时,更好的选择是在onViewCreated方法中进行视图绑定。

onCreateView方法是用于创建片段的视图层次结构的,它负责将片段的布局文件实例化为一个视图对象。在这个方法中,我们可以通过调用LayoutInflater的inflate方法来加载布局文件,并返回对应的视图对象。然后,我们可以通过findViewById方法来获取布局文件中的各个视图组件,并进行相应的操作。

然而,在onCreateView方法中进行视图绑定存在一些问题。由于onCreateView方法返回的是片段的根视图,而不是具体的视图组件,因此在这个方法中无法直接访问和操作具体的视图组件。这意味着,如果我们需要在片段中对具体的视图组件进行操作,就需要在onCreateView方法中保存对根视图的引用,并在其他方法中使用findViewById方法来获取具体的视图组件。这样会增加代码的复杂性和冗余性。

相比之下,onViewCreated方法更适合进行视图绑定。在这个方法中,我们可以直接通过参数View view来获取片段的根视图,并且可以直接访问和操作具体的视图组件。这样,我们就可以更方便地进行视图绑定和相关操作,减少了代码的复杂性和冗余性。

总结起来,在片段中使用视图绑定时,更好的选择是在onViewCreated方法中进行。这样可以更方便地进行视图绑定和相关操作,提高代码的可读性和可维护性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(Mobile):https://cloud.tencent.com/product/mobile
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Metaverse):https://cloud.tencent.com/product/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android之Fragment介绍

Fragment是一种可以嵌入Activity当中的UI片段,用来组建Activity界面的局部模块, 也可以说一个Actiivty界面可以由多个Fragment组成。...可适配:根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,这样用户体验更好。...Fragment的生命周期 image.png onCreateView是创建的时候调用,onViewCreatedonCreateView后被触发的事件,前后关系 就是fragmentonCreateView...且onStart运行时间位于onViewCreated之后 方法 含义 onAttach方法 Fragment和Activity建立关联的时候调用(获得activity的传递的值) onCreateView...方法 为Fragment创建视图(加载布局)时调用(给当前的fragment绘制UI布局,可以使用线程更新UI) onActivityCreated方法 当Activity的onCreate方法执行完后调用

81020

Android使用ViewBinding

前言 原始方式 我们的开发过程,需要获取XML布局文件的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。...生成代码的方式 谷歌 Android Studio 3.6 Canary 11 及更高版本中加入了新的视图绑定方式ViewBinding。...ViewBinding 使用了编译时生成的绑定类, xml 布局文件的每个视图都会生成一个对应的绑定类对象,因此在编译时检测到视图名称的错误。...多个模块引用同一个视图时可能会出现命名冲突的问题,需要通过手动指定全限定名解决。...总体而言 ViewBinding 类型安全性和编译时错误检测方面比 Kotlin扩展 更好。 它是官方推荐的方式,并且可以避免一些潜在的运行时异常。

62221
  • Android入门教程 | Fragment 基础概念

    可以一个 Activity 组合多个片段,从而构建多窗格界面,并在多个 Activity 重复使用某个片段。...onCreateView() 系统会在片段首次绘制其界面时调用此方法。如要为片段绘制界面,从此方法返回的 View 必须是片段布局的根视图。如果片段未提供界面,可以返回 null。...可以通过两种方式向 Activity 布局添加片段(以下为代码片段,并非完整代码)。 静态方式 Activity 的布局文件内声明片段本例,您可以将片段当作视图来为其指定布局属性。...Fragment 替代 TabActivity 做导航,性能更好。 Fragment 4.2.版本中新增嵌套 fragment 使用方法,能够生成更好的界面效果。 3....基于以上不同的特点我们使用使用一定要结合着生命周期操作我们的视图和数据。 5.

    3.5K40

    Kotlin如何直接使用控件ID原理详析

    最近断断续续地把项目的界面部分的代码由JAva改成了Kotlin编写,并且如果应用了kotlin-android-extensions插件,一个显而易见的好处是再也不用写 findViewById()来实例化你的控件对象了,直接操作你布局文件里的...Fragment 再来看下Fragment使用: import android.os.Bundle import android.support.v4.app.Fragment import android.view.LayoutInflater...null"); } this.mViewLifecycleOwner = null; } } 可以看到mView其实就是onCreateView()的返回值,所以我们不能在onCreateView...建议onViewCreated()方法里使用。...因为这一功能是实现性质的,默认关闭,我们需要手动打开,build.gradle开启: androidExtensions { experimental = true } 然后再recycler.adapter

    1.8K20

    《Android基础:Fragment,看这篇就够了》

    我们可以Fragment的onAttach()通过getArguments()获得传进来的参数,并在之后使用这些参数。...Activity添加Fragment的方式有两种: 静态添加:xml通过 的方式添加,缺点是一旦添加就不能在运行时删除。 动态添加:运行时添加,这种方式比较灵活,因此建议使用这种方式。...onDestroyView():当Fragment的UI从视图结构移除时调用。 onDestroy():销毁Fragment时调用。...上面的方法,只有onCreateView()重写时不用写super方法,其他都需要。...执行队列的事务会怎样被执行呢?就是调用BackStackRecord的run()方法,run()方法就是执行Fragment的生命周期函数,还有将视图添加进container

    3.9K61

    Android-ViewModel和LiveData使用详解

    我们可以onSaveInstanceState()方法中保存数据,并从onCreate()方法通过Bundle恢复数据,但这种方法只适用于可以对其进行序列化的少量数据,而不适用于潜在的大量数据。...直到当前Activity被系统销毁时,Framework会调用ViewModel的onCleared()方法,我们可以onCleared()方法做一些资源清理操作。...LiveData在生命周期状态更改时通知Observer对象,更新这些Observer对象的UI。观察者可以每次应用程序数据更改时更新UI,而不是每次发生更改时更新UI。...(演示 Activity与Fragment中和Fragment与Fragment相互通信) Activity: package io.dcloud.H56580E2E.viewModelLiveData...是onCreateView后被触发的事件*/ @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState

    3.5K30

    Fragment 基础知识

    FragmentonActivityCreated与onViewCreated调用顺序是 onViewCreated要优先于onActivityCreated调用 比如: 直接使用ViewPager...: transaction.commit()之前,使用addToBackStack()将其添加到回退栈。...,而且将fragment从Activity的ADD队列移除,所以使用detach()后,使用fragment::isAdded()返回的值是false;但此fragment实例并不会删除,此fragment...的状态依然保持着使用,所以fragmentManager仍然可以找到,即通过FragmentManager::findViewByTag()仍然是会有值的。...attach attach():显然这个方法与detach()所做的工作相反,它一方面利用fragment的onCreateView()来重建视图,一方面将此fragment添加到ADD队列;这里最值得注意的地方在这里

    66620

    Android:Jetpack之视图绑定——ViewBinding

    Data Binding→数据绑定,可使用声明式将布局的界面组件绑定到应用的数据源; Lifecycles→生命周期感知,可感知和响应Activity和Fragment的生命周期状态的变化; LiveData...实际开发,也是这部分的组件用得多一些,Jetpack库可单独使用,也可以组合使用,开发者可按需选择。...本节开始折腾,先带来一个超简单的 → ViewBinding(视图绑定)。...注:使用ViewBinding,AGP版本需 >= 3.6 接着介绍下基本用法,部分内容搬运自官方文档: 《视图绑定》 ① 启用ViewBinding 需要启用视图绑定的Module,在其build.gradle...binding.root) { var tvItem: TextView = binding.tvItem } } ⑦ 自定义ViewGroup ViewGroup子类才能使用视图绑定

    1.3K30

    Android:Jetpack之视图绑定——ViewBinding

    Data Binding→数据绑定,可使用声明式将布局的界面组件绑定到应用的数据源; Lifecycles→生命周期感知,可感知和响应Activity和Fragment的生命周期状态的变化; LiveData...实际开发,也是这部分的组件用得多一些,Jetpack库可单独使用,也可以组合使用,开发者可按需选择。...本节开始折腾,先带来一个超简单的 → ViewBinding(视图绑定)。...注:使用ViewBinding,AGP版本需 >= 3.6 接着介绍下基本用法,部分内容搬运自官方文档: 《视图绑定》 ① 启用ViewBinding 需要启用视图绑定的Module,在其build.gradle...binding.root) { var tvItem: TextView = binding.tvItem } } ⑦ 自定义ViewGroup ViewGroup子类才能使用视图绑定

    1.1K30
    领券