【问题标题】:Save and Load layouts across different activities跨不同活动保存和加载布局
【发布时间】:2016-05-20 03:10:36
【问题描述】:

我正在创建具有以下功能的应用程序。主要活动是一个带有三个fragments 的选项卡式活动。中间的fragmentListView 组成。当您选择 listView 项目时,它将允许您执行以下两项操作之一:

  1. 编辑布局,可以添加按钮、开关、文本框等。
  2. 如果创建了布局,您可以滑动到第一个选项卡,该布局将加载用户添加的所有自定义视图。

我想知道如何保存每个ViewGroup,以便用户可以访问它们并随意编辑它们。我不认为这可以通过 SavedStated 完成,因为它将跨越不同的活动,这就是为什么我需要一种保存/加载它们的方法。

我有一个片段可以让您自定义布局。我只想和所有孩子一起保存ViewGroup。因此,您将拥有10个不同的XML布局,而是使用10个不同的ViewGroups,可以使用10个不同的视图群组,以动态插入,因为选择了不同的ListView项。

它不能是布局的图像,当我切换到视图时,我需要拥有所有按钮和开关的功能,并且用户需要能够在他们喜欢的时候编辑他们的布局。

【问题讨论】:

    标签: android android-layout viewgroup


    【解决方案1】:

    我认为您需要为所有视图创建模型。例如 ModelButton - 是你按钮的模型,可能有下一个代码:

    public class ModelButton implements Serializable{
        private String text;
       private Bitmap bgResource;
       private int width;
       private int height
       public ModelButton(final String text, final Bitmap bgResource, final int width, final int height) {
          this.text = text;
          this.bgResource = bgResource;
          this.width = width;
          this.height = height;
       }
    }
    

    您的所有模型都必须实现 Serializable 接口才能将其传递给 Intent。 你还需要想办法存储视图的宽度和高度。

    这不是简单的方法,但据我所知是没有办法在活动之间传递 ViewGroup 或 View

    【讨论】:

    • 这就是我所害怕的。我想我将不得不重新考虑如何构建这个应用程序。如果我创建多个片段并根据用户所做的选择对每个片段进行膨胀会怎样。有没有办法在定制后保存该片段?
    • 是的,您可以使用创建的 ViewGroup 作为内容创建片段。但是您仍然需要在 onPause 时存储视图的方法 - 调用 onResume 片段方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2022-11-23
    • 2011-07-16
    相关资源
    最近更新 更多