android之View的启动过程[通俗易懂]

程序里调用了onSizeChanged方法进行了一些设置,不知道onSizeChanged是在什么时候启动的,所以研究了一下View的启动流程代码如下:public class TestView extends View { public TestView(Context context) { super(context); Log.d(“mDebug”, “TestV

大家好,又见面了,我是全栈君。

程序里调用了onSizeChanged方法进行了一些设置,不知道onSizeChanged是在什么时候启动的,所以研究了一下View的启动流程

代码如下:

public class TestView extends View {

	public TestView(Context context) {
		super(context);
		Log.d("mDebug", "TestView context");
	}

         public TestView(Context context, AttributeSet attrs) {
                 super(context, attrs);
                 Log.d("mDebug", "TestView context, attrs="+attrs.getAttributeValue(0));
         }	
	
	public TestView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		Log.d("mDebug", "TestView context,attrs,defStyle attrs="+attrs.getAttributeValue(0));
	}


	
	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		Log.d("mDebug", "onDraw");
	}

	@Override
	protected void onFinishInflate() {
		super.onFinishInflate();
		Log.d("mDebug", "onFinishInflate");
	}



	@Override
	protected void onSizeChanged(int w, int h, int oldw, int oldh) {
		super.onSizeChanged(w, h, oldw, oldh);
		Log.d("mDebug", "onSizeChanged,w="+w+",h="+h+",oldw="+oldw+",oldh="+oldh);
	}

}

输出如下:

22:23:03.587: D/mDebug(9715): TestView context, attrs=@2131034112
22:23:03.597: D/mDebug(9715): onFinishInflate
22:23:03.667: D/mDebug(9715): onSizeChanged,w=720,h=1080,oldw=0,oldh=0
22:23:03.727: D/mDebug(9715): onDraw
22:23:03.757: D/mDebug(9715): onDraw

很显然,onSizeChanged的启动时间在onDraw之前

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121435.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mac下安装kubeneters及zsh下配置自动补全

    mac下安装kubeneters及zsh下配置自动补全

    2021年5月13日
    105
  • Navicat 15 for MySQL激活码-激活码分享

    (Navicat 15 for MySQL激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    385
  • 指针

    指针

    2022年1月12日
    51
  • clion 激活码 下载(最新序列号破解)

    clion 激活码 下载(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    47
  • Rpc接口测试_Python接口测试

    Rpc接口测试_Python接口测试本发明涉及RPC(RemoteProcedureCallProtocol,远程过程调用协议,通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议)接口测试领域,具体涉及一种RPC接口测试方法及系统。背景技术:接口测试(对系统组件间接口进行测试)主要用于检测外部系统与系统(包括各个子系统)之间的交互点,接口测试重点为检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系…

    2022年10月13日
    3
  • zuul 网关的用途_Zuul网关

    zuul 网关的用途_Zuul网关Zuul的主要作用:1.路由,进行请求转发。2.鉴权,进行身份认证(安全)。3.限流,限制访问的数量,保证服务器的稳定。除此之外还有以下作用4.负载均衡。5.压力测试。6.监控1.Zuul简单使用1.添加依赖org.springframework.cloudspring-cloud-starter-netflix-zuul2.添加@EnableZuulProxy注解@EnableZuulProx…

    2022年8月15日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号