如何使用Proteus Android Layout Engine实现级联资产

问题描述 投票:1回答:1

我想从Proteus库生成级联资产。我是android开发的新手,我在@adithya(Proteus的开发人员)的帮助下成功建立了一个动态视图库。

我想要的很简单就是假设有一个带单选按钮值的单选按钮我需要在单选按钮的下面添加更多资源

就像你有孩子一样?如果是,应在下方加载多少个子文本框

像这样

{
  "survey":[
    {
      "value" : "What's your name?",
      "type" : "TextView",
      "cascade" : "0",
      "show" :"true",
      "survey" : "",
      "id" : "1"
    },
    {
      "value" : "What's your age?",
      "type" : "TextView",
      "cascade" : "0",
      "show" :"true",
      "survey" : "",
      "id" : "2"
    },
    {
      "value" : "Do you have any children?",
      "type" : "SelectionController",
      "cascade" : "1",
      "show" :"true",
      "id" : "3",
      "option" : [
        {
          "value": "YES",
          "cascade": "1",
          "type": "option",
          "show": "false",
          "id" : "3.1",
          "survey": [
            {
              "value" : "How many children?",
              "type" : "TextView",
              "cascade" : "0",
              "show" :"false",
              "id" : "3.1.1",
              "survey" : ""
            },
            {
              "value" : "How many are married",
              "type" : "TextView",
              "cascade" : "0",
              "show" :"false",
              "id" : "3.1.2",
              "survey" : ""
            }
          ]
        },
        { "value": "No",
          "cascade": "0",
          "type": "option",
          "show": "false",
          "id" : "3.2",
          "survey": ""
        }
      ]
    },
    {
      "value" : "What's your address?",
      "type" : "TextView",
      "cascade" : "0",
      "show" :"true",
      "id" : "4",
      "survey" : ""
    },
    {
      "value" : "What is your status?",
      "type" : "SelectionController",
      "cascade" : "1",
      "id" : "5",
      "show" :"true",
      "option" : [
        {
          "value" : "Graduate",
          "type" : "option",
          "cascade" : "1",
          "id" : "5.1",
          "show" :"false",
          "survey" : [
            {
              "value" : "Which year?",
              "type" : "TextView",
              "cascade" : "0",
              "show" :"false",
              "id" : "5.1.1",
              "survey" : ""
            },
            {
              "value" : "Which faculty?",
              "type" : "TextView",
              "cascade" : "0",
              "show" :"false",
              "id" : "5.1.2",
              "survey" : ""
            }
          ]
        },
        {
          "value" : "Undergraduate",
          "type" : "option",
          "cascade" : "1",
          "show" :"false",
          "id" : "5.2",
          "survey" : [
            {
              "value" : "where are you studying?",
              "type" : "SelectionController",
              "cascade" : "1",
              "show" :"false",
              "id" : "5.2.1",
              "option" : [
                {
                  "value" : "APIIT",
                  "type" : "option",
                  "cascade" : "1",
                  "show" :"false",
                  "id" : "5.2.1.1",
                  "survey": [
                    {
                      "value" : "What is your GPA?",
                      "type" : "TextView",
                      "cascade" : "0",
                      "show" :"false",
                      "id" : "5.2.1.1.1",
                      "survey" : ""
                    },
                    {
                      "value" : "How was APIIT?",
                      "type" : "TextView",
                      "cascade" : "0",
                      "show" :"false",
                      "id" : "5.2.1.1.2",
                      "survey" : ""
                    }
                  ]
                },
                {
                  "value" : "SLIIT",
                  "type" : "option",
                  "cascade" : "0",
                  "show" :"false",
                  "id" : "5.2.1.2",
                  "survey" : ""
                },
                {
                  "value" : "UCSC",
                  "type" : "option",
                  "cascade" : "1",
                  "show" :"false",
                  "id" : "5.2.1.3",
                  "survey": [
                    {
                      "value" : "How long being in UCSC?",
                      "type" : "TextView",
                      "cascade" : "0",
                      "show" :"false",
                      "id" : "5.2.1.3.1",
                      "survey" : ""
                    },
                    {
                      "value" : "How is UCSC?",
                      "type" : "TextView",
                      "cascade" : "0",
                      "show" :"false",
                      "id" : "5.2.1.3.2",
                      "survey" : ""
                    }
                  ]
                },
                {
                  "value" : "UOM",
                  "type" : "option",
                  "cascade" : "0",
                  "show" :"false",
                  "id" : "5.2.1.4",
                  "survey" : ""
                }
              ]
            }
          ]
        }
      ]
    },
    {"value" : "Are you tired of studying?",
      "type" : "SelectionController",
      "cascade" : "0",
      "show" :"true",
      "id" : "6",
      "option" : [
        {
          "value" : "YES",
          "type" : "option",
          "cascade" : "1",
          "show" :"false",
          "id" : "6.1",
          "survey": ""
        },
        {
          "value" : "NO",
          "type" : "option",
          "cascade" : "0",
          "show" :"false",
          "id" : "6.2",
          "survey" : ""
        }
      ]
    }
  ]
}
java android proteus
1个回答
0
投票

如果您正在寻找数据驱动的视图,那么children属性可以是绑定对象,如下例所示

{
  "type": "LinearLayout",
  "orientation": "horizontal",
  "children": {
    "@": {
      "collection": "@{user.tags}",
      "layout": {
        "type": "LinearLayout",
        "orientation": "horizontal",
        "data": {
          "tag": "@{user.tags[$index]}"
        },
        "children": [
          {
            "type": "TextView",
            "text": "@{tag.title}"
          }
        ]
      }
    }
  }
}

collection必须是json数组。

这里collection是数据集,即数据数组中的项目数。

layout必须是布局定义或参考

为集合中的每个项目充气的布局。请注意data属性以及在布局中使用$index

这将适用于以下数据集:

{
  "tags": [
    {
      "title": "alpha"
    },
    {
      "title": "beta"
    },
    {
      "title": "gamma"
    },
    {
      "title": "delta"
    },
    {
      "title": "niner"
    }
  ]
}
© www.soinside.com 2019 - 2024. All rights reserved.