0

我想切换布局。当按下 ImageButton 地图时,它进入地图视图,当我按下 ImageButton gridview 时,它进入 GridView。

注意:地图是另一种布局。网格在另一个布局中,gridview 中的图片是从另一个布局调用的

在此处输入图像描述

在此处输入图像描述

4

4 回答 4

1

查看碎片

为每个视图创建一个片段。然后,根据您用于父布局视图的内容,您可以在特定视图首次显示时将适当的片段添加到父布局。

当您在视图之间切换时,将当前视图(将被隐藏的视图)放到片段后台堆栈(您还必须查看FragmentManager)。然后当你再次切换时,你可以将已经存在的 Fragment 从堆栈中弹出,并将当前的 Fragment 放入堆栈。

编辑:根据您正在开发的 API(API 13 中引入了片段),您可能需要将兼容性库添加到您的项目中

于 2012-08-22T02:41:33.970 回答
0

在您的主 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);
于 2012-08-22T04:21:11.797 回答
0

从您的点击处理程序调用setContentView(int layoutId)或使用该 Activity 中的地图布局启动一个新 Activity。

于 2012-08-22T01:53:28.473 回答
0

做到这一点的简单方法是进行 2 项活动,除非您有理由不进行多项活动。GridViewActivity
MapViewActivity
当您单击 GridViewActivity 上的图像时,您将启动 MapViewActivity 活动,反之亦然。
只需确保您在两种布局中都有 imagebutton(当然 id 应该不同)。

于 2012-08-22T02:25:49.750 回答