我正在Activity
我有ListView
,但点击Button
,我想用MapView替换ListView
。 />
我有一些选项可以执行此操作,例如已在布局中加载MapView
,但将其可见性设置为View.GONE
,并仅在用户点击按钮时才可见。
另一种选择是使用removeView()
和addView(),
但是我不能这样做,因为Layout是LinearLayout而View应该添加到它的中间。(不知道是否有任何方法这样做。)
最后一个选项是使用ViewStub
,但我之前从未使用过它。
以上哪个选项在性能方面最佳?为什么?考虑到用户可以多次在ListView
和MapView
之间切换。
修改:忘记提及ViewSwitcher
,之前从未使用过它。
答案 0 :(得分:0)
制作一个LinearLayout
,其中有两个小部件ListView
和MapView
。在onCreate
的{{1}}方法中,Activity
与ListView
的可见性设置为:
Gone
方法然后在按钮单击侦听器上输入如下代码:
listview.setvisibility(View.GONE);
mapview.setvisibility(View.VISIBLE);
答案 1 :(得分:0)
经过大量搜索,我逐渐了解这些事情 -
添加和删除视图太糟糕了,容易崩溃
设置可见性是一个不错的选择,但是性能没有提高
使用ViewStub
是更好的解决方案,因为初始加载时间减少了
使用ViewFlipper
也很容易使用解决方案。这很容易,我最终在我的应用程序中使用ViewFlipper
并且对性能没有重大影响。(主要原因是在其中添加动画很容易)
我正在尝试在ViewFlipper中使用ViewStub。我会告诉你什么时候我会成功地做到这一点。
PS:问题仍然是答案。如果我在这里犯了错误,请告诉我。