Android中oncreate中获得控件高度或宽度的实现方法

Android中oncreate中获得控件高度或宽度的实现方法

onCreate函数只是提供了数据初始化的机会,此时还没有正式绘制图形。在图形尚未渲染的情况下,getWidth()或getHeight()得到的值为0。如果需要自适应屏幕,需要一进入界面就得到父控件大小,然后需要在onCreate中动态设置子控件大小。

方法1:

利用ViewTreeObserver类的addOnPreDrawListener接口。

ViewTreeObserver vto = hscrollview.getViewTreeObserver(); vto.addOnPreDrawListener(newViewTreeObserver.OnPreDrawListener() { @Override publicboolean onPreDraw() { if(hasMeasured == false){ intwid = hscrollview.getWidth(); inthei = hscrollview.getHeight(); if(wid != 0 && hei != 0){ hasMeasured= true; } } returntrue; } });

方法2:

利用ViewTreeObserver类的addOnGlobalLayoutListener接口。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-10-24 07:04:55

Android中oncreate中获得控件高度或宽度的实现方法的相关文章

Android OnCreate()中获取控件高度与宽度两种方法详解_Android

Android OnCreate()中获取控件高度与宽度 试过在OnCreate()中获取控件高度与宽度的童鞋都知道,getWidth()与getHeight()方法返回是0,具体原因 看一下Activity的生命周期 就会明白. 上代码: 方法一: int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.Me

Android OnCreate()中获取控件高度与宽度两种方法详解

Android OnCreate()中获取控件高度与宽度 试过在OnCreate()中获取控件高度与宽度的童鞋都知道,getWidth()与getHeight()方法返回是0,具体原因 看一下Activity的生命周期 就会明白. 上代码: 方法一: int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.Me

Android中在OnCreate时获得控件高度

ViewTreeObserver vto = mArrowUp.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { mArrowUp.getViewTreeObserver().removeGlobalOnLayoutListener(this); Log.e("Width",Integer

ASP.NET中TextBox使用Ajax控件显示日期不全的问题解决方法_实用技巧

正常的引用 复制代码 代码如下: <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="AjaxToolKit" %><asp:TextBox ID="txtRecordTime" runat="server" cssclass="style" width

总结Android中MD风格相关控件_Android

要使用MD风格控件,首先需要在Gradle中加入Support Design Library,例如: compile 'com.android.support:design:24.1.1' 一.CoordinatorLayout 1.CoordinatorLayout + AppBarLayout 布局文件代码如下: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.

总结Android中MD风格相关控件

要使用MD风格控件,首先需要在Gradle中加入Support Design Library,例如: compile 'com.android.support:design:24.1.1' 一.CoordinatorLayout 1.CoordinatorLayout + AppBarLayout 布局文件代码如下: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.

android:在Activity如何写一种方法,当调用时可以永久的向原来的布局中增添或修改控件?

问题描述 android:在Activity如何写一种方法,当调用时可以永久的向原来的布局中增添或修改控件? 如题,在Activity如何写一种方法,当调用时可以永久的向原来的布局中增添或修改控件? 解决方案 不明白干嘛,添加控件,无非就是先创建或渲染出一个view,然后通过addview加入到指定的容器中 解决方案二: 可控的话 先写在xml中设visible为gone. 需要的时候设置为visible 解决方案三: 不太清楚你的意思.如果就是添加界面的话,可以用两种方法,一种是楼上说的,可以

dit ext控件-android开发中EditText中动态添加别的控件(图片,按钮,视频)

问题描述 android开发中EditText中动态添加别的控件(图片,按钮,视频) 我想在EditText输入框中不仅仅输入文字,还想输入图片,图片的功能我已经实现了,怎么往里面加入一个按钮,或者加入一个VideoView控件用来播放视频?哪位大牛会啊,给个思路也行啊 解决方案 Android Edittext 添加按钮android开发EditText中添加图片 解决方案二: 组织成html字符串,textview可以解析 解决方案三: 用ImageSpan和SpannableString

android 中win10 使用uwp控件实现进度条Marquez效果

本文将告诉大家,如何做一个带文字的进度条,这个进度条可以用在游戏,现在我做的挂机游戏就使用了他. 如何做上图的效果,实际需要的是两个控件,一个是显示文字 的 TextBlock 一个是进度条. 那么如何让 文字和左边的距离变化?使用 TranslateTransform 看起来 Marquez 的界面就是: <ProgressBar x:Name="Mcdon" Maximum="100" Minimum="0" Value="2