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

在onCreateView之外初始化视图有什么缺点吗?

在onCreateView之外初始化视图的缺点是可能导致视图的状态不一致或不正确。具体来说,以下是一些可能的缺点:

  1. 视图尚未完全创建:在onCreateView之外初始化视图可能会导致视图尚未完全创建,因此可能无法正确访问或操作视图的各个组件。这可能会导致空指针异常或其他运行时错误。
  2. 上下文环境不正确:在onCreateView之外初始化视图可能会导致上下文环境不正确。视图的正确初始化通常需要正确的上下文环境,例如Activity或Fragment的上下文。如果在错误的上下文环境中初始化视图,可能会导致错误或异常。
  3. 视图状态不一致:在onCreateView之外初始化视图可能会导致视图状态不一致。例如,如果在onCreateView之外初始化一个按钮,并在onCreateView中设置其点击事件,那么可能会导致按钮的点击事件无效,因为按钮的状态可能在onCreateView之后被修改。
  4. 可读性和维护性差:将视图初始化代码分散在不同的地方可能会导致代码的可读性和维护性变差。在onCreateView中初始化视图可以使代码更加清晰和易于理解,因为所有与视图相关的初始化代码都集中在一个地方。

综上所述,为了避免上述问题,最好在onCreateView方法中初始化视图,以确保视图的正确创建和状态一致性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【DB笔试面试581】Oracle中,绑定变量是什么?绑定变量什么缺点

♣ 题目部分 Oracle中,绑定变量是什么?绑定变量什么缺点? ♣ 答案部分 绑定变量这节的内容较多,下面给出这节涉及到的关系图: ?...(一)绑定变量的含义及优缺点 通常在高并发的OLTP系统中,可能会出现这样的现象,单个SQL的写法、执行计划、性能都是没问题的,但整个系统的性能就是很差,这表现在当系统并发的数量增加时,整个系统负载很高...绑定变量的缺点主要体现在当使用绑定变量时,查询优化器会忽略其具体值,因此,其预估的准确性远不如使用字面量值真实。...需要注意的是,对于实际的数据库对象,例如表、视图等,不能使用绑定变量替换,只能替换字面量。如果对象名是在运行时生成的,那么需要对其用字符串拼接,同时,SQL只会匹配已经共享池中存在且相同的对象名。...优点是减少硬解析,降低CPU的争用,节省Shared Pool;缺点是不能使用固定的执行计划,SQL优化比较困难。

2.5K20

【DB笔试面试749】Oracle中,什么是DG?DG哪些优缺点

♣ 题目部分 Oracle中,什么是DG?DG哪些优缺点?...通常情况下,主库对外提供服务,用户主库上进行操作,操作被记录在联机日志和归档日志中,这些日志通过网络传递给备库,然后备库上被应用,从而实现主库和备库的数据同步。...每个技术都有其优缺点,下面来看看DG哪些优缺点。 DG的优点主要有以下几点内容: ① 灾难恢复及高可用性。 ② 全面的数据保护。 ③ 有效利用系统资源。...④ 高可用及高性能之间更加灵活的平衡机制。 ⑤ 故障自动检查及解决方案。 ⑥ 集中的、易用的管理模式。 ⑦ 自动化的角色转换。...DG的缺点主要有以下几点内容: ① 由于传输整个日志文件,所以,需要较高的网络传输带宽。

1.1K10

Android仿微信Viewpager-Fragment惰性加载(lazy-loading)

什么是lazy-loading呢?顾名思义就是必要的时候才加载,否则不进行View的绘制和数据的加载。...该方法设置ViewPager允许多少张pages存在于屏幕外(不包括正在显示的page),默认值是1。范围之外的pages 的View会被销毁,即onDestroyView()会被执行。...4.我们通常是onCreateView()中对Fragment完成视图的构建。若是要实现延迟加载,可以调用onCreateView时获得一个空container的引用。...那么ViewPager初始化时构建Fragment的个数与什么有关呢?这个主要跟使用的Adapter类型和setOffscreenPageLimit()有关。...我们可以自定义一个抽象类LazyFragment,重写onCreateView()方法,只返回一个简单的,甚至是空的(不是null)的ViewGroup作为Container,比如return new

1.3K31

TabLayout+ViewPager+Fragment实现切页展示「建议收藏」

如果这么简单地调用函数就能实现懒加载的话,那也没什么好说的,但是这里又有一个巨坑,则是因为这个setUserVisibleHint函数是游离Fragment生命周期之外的,它的执行可能早于onCreate...和onCreateView,然而既然要时间数据的加载,就必须要在onCreateView创建完视图过后才能使用,不然就会返回空指针崩溃,懒加载的重点也是在这儿,那么我们来分析,实行懒加载必须满足哪些条件呢...1.View视图加载完毕,即onCreateView()执行完成 2.当前Fragment可见,即setUserVisibleHint()的参数为true 3.初次加载,即防止多次滑动重复加载 了这两个条件过后...= false; //不可见 boolean mIsFirstLoad = true; //第一次加载 当然onCreateView中确保了View已经准备好时,将mPrepare置为true,setUserVisibleHint...但是这样的做法,最大的缺点就是容易造成第一次启动时非常缓慢!如果第一次启动时间满足要求的话,就使用这种简单地办法吧。

2.1K10

Android 点将台:撒豆成兵

Fragment(碎片) 拥有生命周期,含有视图,可视可交互的界面 。...这是曾经让我疑惑的一点:构造函数入参来传参不是挺好的?但是: 貌似AS 不给我们用构造,需要通过Fragment#setArguments(Bundle)来传参 ? 如果我任性,偏要用呢?...----虽然画红线但是还是运行还是能跑起来的,效果也没有差别, 于是乎,问题来了: 为什么谷歌的大佬不推荐我们Fragment中使用构造函数呢?...|--- 旋转屏幕时:Fragment将面临 销毁+重建 ,但测试中Fragment并没有什么变化 |--- 重建的Fragment是系统帮我们做的,那它怎么还原刚才的参数呢(颜色)?...positionOffsetPixels" + positionOffsetPixels); } /** * 某个页面被选中(从0计数) 翻页成功才会调用 * @param position 翻页后的视图集合中位置

80620

【Android从零单排系列三十六】《Android四大组件——Fragment》

Fragment以下几个主要特点: 独立性:Fragment具有独立的生命周期,并且可以被添加到或移除出Activity,也可以不同的Activity之间共享。...Activity的Java代码中通过FragmentManager管理Fragment,常见操作: 动态添加Fragment: 使用FragmentTransaction的add()方法将...onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState): 创建Fragment的视图层次结构...onViewCreated(View view, Bundle savedInstanceState): 当Fragment的视图已经被创建后调用,可以进行与视图相关的初始化操作。...布局和视图: 每个Fragment可以拥有自己的布局文件,通过onCreateView()方法返回填充的View对象。

26030

安卓开发_浅谈Fragment之ListFragment

ListFragment,即Fragment的一个子类,当我们用的一个Fragment只需要一个listview视图的时候使用 该类几个特点: 1、ListFragment 本身具只有一个ListView...视图,返回的也是一个只有ListView的布局对象 2、ListFragment 不需要指定布局,本身固定,只有一个ListView视图 3、给ListFragment中的ListView加载数据或者绑定适配器都只能出现...onCreateView(),因为onCreateView方法之后,ListView对象才创建, 4、给 ListView设置适配器 用setListAdapter 5、ListFragment已经实现了其...---------------------------------------------------------------------------- 下面看一个Demo 注意fragment是3.0...之后,因为onCreateView初始化视图 32 @Override 33 public void onActivityCreated(Bundle savedInstanceState

2K80

Android Fragment 使用

大家好,又见面了,我是全栈君 自从Fragment出现,曾经段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明...onCreateView(LayoutInflater, ViewGroup,Bundle) 创建该Fragment的视图 onActivityCreated(Bundle) 当Activity的onCreate...方法返回时调用 onDestoryView() 与onCreateView想对应,当该Fragment的视图被移除时调用 onDetach() 与onAttach相对应,当Fragment与Activity...步骤: 1、继承Fragment,重写onCreateView决定Fragemnt的布局 2、Activity中声明此Fragment,就当和普通的View一样 下面展示一个例子(我使用2个Fragment...c、remove和detach一点细微的区别,不考虑回退栈的情况下,remove会销毁整个Fragment实例,而detach则只是销毁其视图结构,实例并不会被销毁。那么二者怎么取舍使用呢?

45520

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

Fragment很多可以复写的方法,其中最常用的就是onCreateView(),该方法返回Fragment的UI布局,需要注意的是inflate()的第三个参数是false,因为Fragment内部实现中...Activity中添加Fragment的方式两种: 静态添加:xml中通过的方式添加,缺点是一旦添加就不能在运行时删除。...Fragment一个常见的问题,即Fragment重叠问题,这是由于Fragment被系统杀掉,并重新初始化时再次将fragment加入activity,因此通过在外围加if语句能判断此时是否是被系统杀掉并重新初始化的情况...上面的方法中,只有onCreateView()重写时不用写super方法,其他都需要。...功能如下:共有两个Fragment:F1和F2,F1初始化时就加入Activity,点击F1中的按钮调用replace替换为F2。

4.8K122

Android自定义控件

扩展样式 从业务上讲,Selector长什么样是一个频繁的变化点,遂把“构建按钮样式”这个行为设计成Selector的抽象函数onCreateView(),供子类重写以实现扩展。...context, null); } ​ private void initView(Context context, AttributeSet attrs) { // 初始化按钮算法框架...,延迟到子类实现 protected abstract View onCreateView(); } Selector继承自FrameLayout,实例化时会构建按钮视图,并把该视图作为孩子添加到自己的布局中...继承的一个后果就是类数量的膨胀,有没有什么办法不用继承就能扩展按钮样式和行为? 可以把构建按钮样式的成员方法onCreateView()设计成一个View类型的成员变量,通过设值函数就可以改变其值。...绑定给Selector 的数据被设计为泛型,业务层只有强转成具体类型才能使用,什么办法可以不要在业务层强转?

5.9K00
领券