我想切换布局。当按下 ImageButton 地图时,它进入地图视图,当我按下 ImageButton gridview 时,它进入 GridView。
注意:地图是另一种布局。网格在另一个布局中,gridview 中的图片是从另一个布局调用的
我想切换布局。当按下 ImageButton 地图时,它进入地图视图,当我按下 ImageButton gridview 时,它进入 GridView。
注意:地图是另一种布局。网格在另一个布局中,gridview 中的图片是从另一个布局调用的
查看碎片
为每个视图创建一个片段。然后,根据您用于父布局视图的内容,您可以在特定视图首次显示时将适当的片段添加到父布局。
当您在视图之间切换时,将当前视图(将被隐藏的视图)放到片段后台堆栈(您还必须查看FragmentManager)。然后当你再次切换时,你可以将已经存在的 Fragment 从堆栈中弹出,并将当前的 Fragment 放入堆栈。
编辑:根据您正在开发的 API(API 13 中引入了片段),您可能需要将兼容性库添加到您的项目中
在您的主 xml 中创建一个持有者视图(例如,RelativeLayout)。然后,为 gridview 和 mapview 创建 2 个单独的 XML 文件。
当按下相应的按钮时,您可以充气并将正确的视图附加到您的持有人视图。为了提高效率,您甚至可以使用 ViewHolder 范例来缓存已经膨胀的视图。
希望这可以帮助...
根据以下问题进行编辑
示例代码(即时键入,因为在当前位置无法访问我的工作版本)。
main.xml 包含
<RelativeLayout android:id="@+id/x".../>
您还有 image.xml 和 map.xml。在您的 OnClick 中,尝试:
ViewGroup myLayout = view.findViewById(R.id.x);
View myView;
if (clickedButton == imageButton) {
myView = getInflater().inflate(R.layout.image, myLayout, false);
} else if (clickedButton == mapButton) {
myView = getInflater().inflate(R.layout.map, myLayout, false);
}
myLayout.addView(myView);
从您的点击处理程序调用setContentView(int layoutId)
或使用该 Activity 中的地图布局启动一个新 Activity。
做到这一点的简单方法是进行 2 项活动,除非您有理由不进行多项活动。GridViewActivity
MapViewActivity
当您单击 GridViewActivity 上的图像时,您将启动 MapViewActivity 活动,反之亦然。
只需确保您在两种布局中都有 imagebutton(当然 id 应该不同)。