我想知道Android在将视图加载到布局中以及何时显示然后不显示在屏幕上时如何管理内存。
基本上,我正在制作一个应用程序,它需要一个非常长的页面,其中包含位图和文本——类似于网页。我知道我应该使用 GridView 和 ListView 等标准视图来处理大量视图和图像,但这是一个小众应用程序。(设计一成不变)
说我有这个布局
<ScrollView>
<LinearLayout>
1000 ImageViews vertically stacked inside here.
</LinearLayout>
</ScrollView>
加载 ScrollView 时,并非所有 ImageView 都适合屏幕 - 不在屏幕上的 ImageView 位图是否仍加载到内存中?如果不是,当它们被滚动到视图中时,它们会被从内存中删除?
注意:我知道 GridViews / ListViews 是为此目的而设计的,但我的应用程序的特殊设计无法容纳这些视图。
潜在的解决方案:扩展gridview,使其具有固定的高度,并且直到ScrollView
它包含在底部时才滚动。IE:
<ScrollView>
<LinearLayout>
Lots of text and a few images.
<GridView> <-- attach listener so that touch events are
ignored until at bottom of scroll view -->
1000s of ImageViews
</GridView>
</LinearLayout>
</ScrollView>