【发布时间】:2017-01-02 13:21:04
【问题描述】:
我正在构建一个导航类似于 Instagram 的 Android 应用,它有多个标签,每个标签都有自己的历史记录。
实施
我通过使用ViewPager 和FragmentPagerAdapter 实现了这个导航。向下导航每个选项卡时,我通过执行以下代码替换 FrameLayout 的内容
getChildFragmentManager.beginTransaction().addToBackStack(null).replace(R.id.container, newFragment).commit()
并为后退按钮按下事件执行getChildFragmentManager.popBackStackImmediate()。
我使用 facebook fresco 的 SimpleDraweeView 并通过执行 SimpleDraweeView.setImageURI(Uri.parse(str)) 加载图像。
应用程序使用MapView 并创建自定义标记,其图标由Picasso.with(context).with(url).into(new MarkerTarget(...)) 创建
class MarkerTarget implements Target {
private Marker marker;
public MarkerTarget(Marker marker) {
this.marker = marker;
}
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
try {
marker.setIcon(BitmapDescriptorFactory.fromBitmap(bitmap));
marker.setVisible(true);
} catch(Exception e) {
}
}
...
}
}
大部分片段都有ListView、BaseAdapter 的扩展和一个演示者。
问题
它似乎有效,但问题是当我在选项卡中向下导航时,发生 OOM 错误。 Instagram 如何保存(可能)无限数量的历史。
Allocation Tracker Result (Screenshot)
问题
如何在 Android 平台上实现类似 instagram 的导航?
【问题讨论】:
-
这可能会对您有所帮助。 github.com/roughike/BottomBar
标签: android android-fragments instagram picasso fresco