这是关于同时打开多个堆叠视图的内存管理的理论问题。
想象一堆火种卡(可以具有无限长度),以及用户左右,前后左右滑动的能力。通过来回,我的意思是,不是退出屏幕并且(最终)回收或释放的视图,它需要至少保持其形状(如果不是其内容),以便准确地放回到屏幕上,如果用户刷回去。
我很好奇这个内存会带来什么影响。我的猜测是,在某个任意点之后,你清除卡片但保持在堆栈中的位置。如果卡足够接近可能在屏幕上返回,您只需从api中提取内容即可。但是,随着视图计数变大(> 100),不会导致性能问题?
显然,必须有办法处理它,因为你可以在iOS上使用滚动视图/表视图创建任意长的列表。但是我想我需要像性能这样的表视图,而不需要实际需要表视图。
是否有处理此问题的标准方法?
答案 0 :(得分:0)
如果没有具体的视觉效果,很难回答这个问题,但我怀疑你永远不必渲染超过两张或三张牌来达到预期的效果。编写一个自定义视图,在卡片到达第二个或第三个位置时(根据用户界面)懒惰地呈现卡片并不难。
或者,您可以使用using (AndroidJavaClass jcUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
using (AndroidJavaObject joActivity = jcUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
using (AndroidJavaObject joContext = joActivity.Call<AndroidJavaObject>("getApplicationContext"))
using (AndroidJavaClass jcMediaScannerConnection = new AndroidJavaClass("android.media.MediaScannerConnection"))
using (AndroidJavaClass jcEnvironment = new AndroidJavaClass("android.os.Environment"))
using (AndroidJavaObject joExDir = jcEnvironment.CallStatic<AndroidJavaObject>("getExternalStorageDirectory"))
{
jcMediaScannerConnection.CallStatic("scanFile", joContext, new string[] { YOURFULL IMAGE PATH}, null, null);
}
和自定义UICollectionView
子类来实现此操作以堆叠卡片。