自定义布局或者自定义view都是一样的流程
周期如下
# 进入 onFinishInflate: onAttachedToWindow: onWindowVisibilityChanged: onVisibilityChanged: onMeasure: onLayout: onDraw: # 退出 onWindowVisibilityChanged: onVisibilityChanged: onDetachedFromWindow:
package com.la.allwater.view; import android.content.Context; import android.content.res.Configuration; import android.graphics.Canvas; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.LinearLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; public class MyLinearLayout extends LinearLayout { private String TAG = "MyLinearLayout"; 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); } @Override protected void onFinishInflate() { super.onFinishInflate(); Log.d(TAG, "onFinishInflate: "); } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); Log.d(TAG, "onAttachedToWindow: "); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); Log.d(TAG, "onMeasure: "); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); Log.d(TAG, "onLayout: "); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Log.d(TAG, "onDraw: "); } @Override protected void onWindowVisibilityChanged(int visibility) { super.onWindowVisibilityChanged(visibility); Log.d(TAG, "onWindowVisibilityChanged: "); } @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Log.d(TAG, "onConfigurationChanged: "); } @Override protected void onVisibilityChanged(@NonNull View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); Log.d(TAG, "onVisibilityChanged: "); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); Log.d(TAG, "onDetachedFromWindow: "); } }
历史上的今天
暂无评论...
随机推荐
歌德:野蔷薇
少年看到一朵蔷薇,荒野的小蔷薇,那样的娇嫩可爱而鲜艳,急急忙忙走向前,看得非常欢喜。蔷薇,蔷薇,红蔷薇,荒野的小蔷薇。 少年说:“我要来采你,荒野的小蔷薇!”蔷薇说:“我要刺你,让你用不会忘记。我不愿被你采折。”蔷薇,蔷薇,红蔷薇,荒野的小蔷薇。 ...
[小知识]内存泄漏整理
什么是内存泄漏?总的来说:内存不在GC掌握之内。当一个对象已经不在使用了,本该回收时,而另外一个正在使用的对象持有它的引用而导致内存不能被回收。本该回收的对象没有被回收,而一直停留在堆内存中,这就产生了内存泄漏。Java的GC内存回收机制当对象不再有任何的引用时候才会进行回收。内存分配的...
Android修改默认音量
前言最近有涉及相关音量的修改,不是很理解,因此网站找了相关资料学习,记录一下方便自己查阅。正文本文内容在参考文《android车机修改默认最大音量与默认音量》上学习,然后修改自己的音量。android10/device/semidrive/common/audio/audio_policy...
MediaMetadataRetriever解析媒体文件元数据
前言记录一下,一般获取视频、音频等媒体文件的元数据信息是使用MediaMetadataRetriever这个类。正文直接上代码。MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();//设...
芒克:天空
太阳升起来天空血淋淋的犹如一块盾牌 日子像囚徒一样被放逐没有人来问我没有人宽恕我 我始终暴露着只是把耻辱用唾沫盖住 天空,天空把你的疾病从共和国的土地上扫除干净 可是,希望变成了泪水掉在地上我们怎么能确保明天的人们不悲伤...
Java反射机制及IoC原理
这篇讲解的不错,摘抄于此。感谢《Java反射机制及IoC原理》一. 反射机制概念主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。反...