android– 在显示之前计算视图测量

android– 在显示之前计算视图测量,第1张

概述我试图尽可能动态地向LinearLayout添加视图(取决于屏幕宽度).我在屏幕上显示LinearLayout之前执行此 *** 作.我的LinearLayout:<LinearLayoutxmlns:android="http://schemas.android.com/apkes/android"android:layout_width="fill_parent"android:layout_height

我试图尽可能动态地向linearLayout添加视图(取决于屏幕宽度).

我在屏幕上显示linearLayout之前执行此 *** 作.

我的linearLayout:

<linearLayout     xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent"    androID:layout_gravity="center"     androID:background="#666"/>

我在linearLayout中显示的视图:

<FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"     androID:paddingleft="10dp"     androID:paddingRight="10dp"    androID:background="#999">    <ImageVIEw        androID:layout_wIDth="48dp"        androID:layout_height="48dp"        androID:src="@drawable/no_photo"/></FrameLayout>

我添加了布局视图:

int allitems = 50;int currentItem = 0;while(currentItem < allitems){    FrameLayout vIEw = (FrameLayout) inflater.inflate(R.layout.fl, null);    linearLayout.addVIEw(vIEw);    if (linearLayout.getMeasureDWIDth() >= this.getWIDth())    {        linearLayout.removeVIEw(vIEw);        break;    }}

但linearLayout.getMeasureDWIDth()和this.getWIDth()为0;

我知道,我必须使用VIEw.measure方法计算视图大小才可见,但我不知道它在何处以及如何使用.

解决方法:

编辑您的代码如下:

display display = getwindowManager().getDefaultdisplay();int maxWIDth = display.getWIDth();int wIDthSoFar=0;int allitems = 50;int currentItem = 0;while(currentItem < allitems) {  FrameLayout vIEw = (FrameLayout) inflater.inflate(R.layout.fl, null);  linearLayout.addVIEw(vIEw);  vIEw .measure(0, 0);  wIDthSoFar = wIDthSoFar + vIEw.getMeasureDWIDth();  if (wIDthSoFar >= maxWIDth) {    linearLayout.removeVIEw(vIEw);    break;  }}

希望这对你有所帮助

总结

以上是内存溢出为你收集整理的android – 在显示之前计算视图测量全部内容,希望文章能够帮你解决android – 在显示之前计算视图测量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1114259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存