当前位置:  开发笔记 > 编程语言 > 正文

Android - ViewStub值得吗?

如何解决《Android-ViewStub值得吗?》经验,为你挑选了1个好方法。

我有一个ListView,其中listview的每一行包含大约10个ImageButtons.这些按钮中的大多数都具有visibility = Gone,并且仅在极少数情况下出现.我想知道是否值得用ViewStubs替换这些ImageButton以避免一直为listview的所有行加载它们(以及它们包含的图像).然后他们的可见性再次设置为"Gone",所以我不确定加载它们有什么影响.他们的图像真的被加载了吗?

请注意,我所说的是将8个ImageButtons替换为8个ViewStub,而不是1个

干杯



1> Tauqir..:

A ViewStub是一种dumb and lightweight观点.它有no dimension,它没有绘制任何东西,也没有以任何方式参与布局.这意味着a ViewStub非常cheap to inflate and very cheap to keep处于视图层次结构中.A ViewStub可以最好地描述为a lazy include.通过引用的布局ViewStubinflated and added对用户界面只when you decide左右.

有时您的布局可能需要complex views很少使用.无论是项目详细信息,进度指示器还是撤消消息,您都可以通过仅在需要时加载视图来减少内存使用并加快渲染速度.

简单的a ViewStub用于提高渲染布局的效率.通过使用ViewStub,可以创建手动视图,但不能将视图添加到视图层次结构.在运行时,可以轻松充气,同时ViewStub充气,内容viewstub将被替换为定义的布局viewstub.

ViewStub将加载只有当你真正使用它/需要它,即当您的可见性设置为VISIBLE(实际可见)或INVISIBLE(仍然不可见,但其大小是不是0了).ViewStubnice optimization,因为你可以有一个复杂的layout with tons of small views or headers任何地方,而且还有你的Activity load up really fast.一旦你使用其中一个视图,它将被加载.

您必须首先添加ViewStub布局,然后才能将其充气到另一个视图.

注意:一个缺点ViewStub是它当前不支持布局中的标记要膨胀.Alos ViewStub不能多次使用.同样保持长寿命的参考ViewStub是不必要的,如果需要的话,最好在充气后将其取消,这样GC可以吃掉它.

我们假设你的ViewStub身份证是view_stub.您需要在以下位置执行以下操作activity:

ViewStub viewStub = (ViewStub) findViewById(R.id.view_stub);
View inflatedView = viewStub.inflate();
ImageButton button = (ImageButton) inflatedView.findViewById(R.id.button);

现在,您可以使用按钮执行任何操作:)也就是说,inflate方法返回存根布局,其中包含XML文件中的实际元素.

当然,您始终可以拥有onClickXML属性或可以动态调用.

Is a ViewStub worth it?
->For the scenarios that you are specifying, I think `ViewStub` will be worth-shot.  

请参阅下面的网址 ViewStub

http://android-developers.blogspot.in/2009/03/android-layout-tricks-3-optimize-with.html

http://developer.android.com/reference/android/view/ViewStub.html

http://developer.android.com/training/improving-layouts/loading-ondemand.html

而不是ViewStub你可以尝试<\include> tag.在将只包含XML内容的基础xml文件,就好像整个事情只是一个大的文件.这是在不同布局之间共享布局部件的好方法.

android中的区别

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有