【发布时间】:2021-05-23 15:49:20
【问题描述】:
我正在做一个可滚动的值列表。
我是使用 Item 模板 完成的,该模板由 Layout Element 设置,嵌套在 Vertical Layout Group 对象。
项目模板由图片和文字描述组成。
我用来填充列表的脚本很简单for:
for (int i = 0; i < details.Count && i < LenSize; i++){
Transform transf = Instantiate(template, container);
RectTransform trasnf2 = transf.GetComponent<RectTransform>();
height = -3 * i;
trasnf2.anchoredPosition = new Vector2(0, height);
transf.gameObject.SetActive(true);
transf.Find("Image").GetComponent<Text>().text = details[i].image;
transf.Find("Desc").GetComponent<Text>().text =
details[i].description;
}
当我从我的 PC 运行应用程序时,一切正常,我可以通过“左键单击 + 向上/向下拖动”或鼠标滚轮滚动列表。
当我构建应用程序并从我的 android 设备运行它时,我的问题出现了,我无法使用触摸屏滚动列表。 (触摸屏输入工作正常,我有一些按钮,他们工作)
有人可以帮我解决我的问题吗?
我发现我可以使用输入管理器来捕获输入事件...但我不确定如何使用它在 Android 上“滚动”,因为如果我使用 垂直布局组,我移动整个对象并且不滚动内部元素,否则,如果我更改子元素的偏移量(Item Templates)我会更改单个元素的位置“打破“垂直布局组的布局;
我试图找到解决方案,但我是新手,应用它时显然没有任何效果。
我做错了什么?
【问题讨论】:
-
您只是想创建一个可滚动的对象列表吗?如果是这样,您不需要代码来实现这一点。我可以发布一个仅使用 UI 组件的可滚动列表示例。
-
@TEEBQNE 我在开始时尝试了可滚动的对象列表,但我遇到了 UI 问题。现在我不记得确切的原因(几周前我做了),但我使用垂直布局组来解决这个问题。如果你愿意,你可以发帖,如果可行,我会尝试。
标签: android unity3d touch-event vertical-scrolling