当我进入我的开发者选项并打开"显示布局边界"我试图优化我的列表项目时我注意到Gmail应用具有完全平坦的视图层次结构?这个黑魔法是如何实现的?
答案 0 :(得分:10)
他们可能会覆盖onDraw并直接绘制到画布上,而不是将视图添加为子视图。
http://developer.android.com/training/custom-views/custom-drawing.html
答案 1 :(得分:1)
嗯,我可能在一些细节上错了,但他们正在使用自定义视图。小部件,如果你愿意的话。
实际上,你有一个类扩展了一些东西,很可能是一个View,一个LinearLayout或一个RelativeLayout,而不是你以编程方式添加你需要的东西,并确保你有从外部访问东西的方法,所以当你创造了一个新的东西",你将能够给它任何你想要的文字或图像。
在你的情况下,我会做的是一个扩展LinearLayout的小部件,我会在那里添加图像,3个textViews(名称,主题,实际邮件)和一个日期的TextView。如果你也想要这个明星,这将是一个额外的东西,一个ImageView。你可以随心所欲地移动它们,这就是它。
如果你想要一些代码,请告诉我,如果你真的需要,我会给你更多细节。
答案 2 :(得分:0)
您可以使用Litho实现相同的平面UI。光刻在下面使用了回收站视图。与仅使用视图持有者重用视图池中的视图的回收器视图不同,Litho重用了每个ui元素(Imageview,textview等)。
https://fblitho.com/static/videos/incremental_recycling.mp4
优势:
缺点:
在项目中实现此功能后,您可以自己查看结果。