MIT App Inventor:定位每个组件

问题描述 投票:0回答:2

我想修改每个Button的属性,但我无法将它们全部定位。我一次只能定位一个。我尝试使用Any Component菜单的Any Button块,但是,我仍然可以只定位一个Button。我不能手动执行修改(逐块),因为我正在使用许多按钮(确切地说是254)。我尝试将每个Button放在一个列表中,但拖动254个块(一个一个)需要花费太多时间。有解决方案吗

android button properties block app-inventor
2个回答
0
投票

有效地改变组件的几个属性(相同类型,即按钮)的一个好方法是使用for-each循环,然后将其与any-button.property结合。

要使用for-each循环,必须首先填充组件列表,但是,按钮不能直接添加到列表中(结构限制..),但不要担心!有一种方法可以绕过这个,即首先创建一个空列表,名为buttonsList(或任何你喜欢的,标记清楚),然后在屏幕初始化时用所有按钮填充列表(为了自动化过程,这必须是手动完成至少一次

使用所有按钮填充列表后,您将能够使用for each循环更改所有属性。

  1. 启动global-buttonsList:创建空列表;
  2. 当screen1.initialize时 将项目添加到'buttonsList' 在这里添加所有按钮 Button1的 BUTTON2 按钮#...等。
  3. 在触发事件 对于每个 - '按钮/组件名称' - 全局'buttonsList' 设置anyButton.property(例如,文本?) 组件 - '按钮/组件名称' 到 - “财产变化” (即:文字 - Hello World!)

这应该完成工作。然而,就像@Taifun提到的那样......那里有很多按钮,如果有一件事appInventor非常擅长,它就会崩溃,所以如果可能的话,重组应用会很棒。


0
投票

只需用你的按钮更改“水平排列”(只手动对不起),然后用按钮的属性(颜色,文本颜色......)更改“任意组件”,并用循环中的数字定位它们(​​对于每个数)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.