0

我正在玩 Rebol,但不知道如何将用户的组件添加回我的布局。

我有一个布局,其中包含从图像 URL 获取的图像,链接到在线文章/视频。我想在线添加更多链接到其相应文章/视频的图像,从用户那里获取 2 个 url(一个用于图像,一个用于文章/视频)。

我是否使用列表,将两个链接添加到列表并使用 show 作为按钮事件再次调用视图?有没有办法在不刷新整个布局的情况下添加它?

4

1 回答 1

1

您可以使用列表,但它是一个棘手的野兽。我将在此处包含一个示例,以便您评估它的工作方式以及它是否适合您。

使用列表,您可以定义布局,然后根据某些数据或其他数据动态修改布局。为了说明,这里有一些图标:

icons: [
    http://reb4.me/r/html-document.png
    http://reb4.me/r/pdf-document.png
    http://reb4.me/r/excel-document.png
    http://reb4.me/r/word-document.png
    http://reb4.me/r/zip-document.png
]

列表样式由大小、布局和供应函数组成(我将在边缘进行说明):

view center-face layout [
    across

    lst: list 48x240 edge none [image 48x48] supply [
        face/image: all [
            img: pick icons count
            load-image img
        ]
    ]

    btn "Random" [
        icons: random icons
        show lst
    ]
]

底部包含一个按钮,用于修改我们的数据,然后重新显示列表。

  • 大小是48x240——列表垂直工作,调用供应函数(列表高度/迭代布局高度)次。我有五个图标,所以将图标高度乘以五。

  • [image 48x48]是我们的迭代布局。请注意,我们在这个例子中只定义了一张脸。与通用布局不同,列表布局是使用layout/tight细化创建的 - 如果您想要交替间距,则需要具体。

  • supply [...]部分是我们的供应功能。这是将被创建和调用以更新列表的函数的简写。该功能是操作面的func [face count index][...]位置;是列表中的位置;并且是迭代布局中的偏移量。facecountindexface

  • 记住迭代布局只创建一次是关键。随着计数的增加,您只是在更改该布局中面的属性。

  • 您只需要show列表,而不需要整个布局。

所以从这里,你可以看到数据源和显示之间的关系。

于 2012-11-09T05:47:12.573 回答