gpt4 book ai didi

android - 在 Android 中,如何在添加子项时在 FrameLayout 中设置子项的顺序?

转载 作者:太空狗 更新时间:2023-10-29 15:53:32 27 4
gpt4 key购买 nike

我有一个 FrameLayout 将容纳一组 ImageView。我正在使用 FrameLayout,因为我实际上希望它们重叠。但是,当我将项目添加到 Layout 时,我不希望它们只是堆叠。我实际上需要订购它们。

图像是从存储中提取出来的,我在我的数据库中存储了正确的顺序,所以:

Image1 - layerNumber: 3
Image2 - layerNumber: 12
Image3 - layerNumber: 1
Image4 - layerNumber: 34
Image5 - layerNumber: 6
Image6 - layerNumber: 30

当我将它们放置在 FrameLayout 中时,我需要它们以 layerNumber 顺序排列在 Layout 中。此外,我将在使用该应用程序时一次添加一个或多个。我可能会标记添加“Image50 - layerNumber: 10”的内容。

我希望做的是使用类似 ImageView.setChildOrder(x) 或类似的东西。有什么办法吗?

-----编辑-----根据@fifarunnerr,我做了这样的事情:

productLayers.addView(productIV, Integer.parseInt(productItem.get(1)));

productItem.get(1) 只是 layerNumber。对于此示例,它位于第 23 层。

我收到错误:java.lang.IndexOutOfBoundsException: index=23 count=3

我理解错误:我试图在布局中放置一个 View ,该布局在第 23 个位置有 3 个“位置”。正如您在我之前的数字中看到的那样,layerNumber 并不总是处于 1..2..3..4... 模式。

最佳答案

根据 this thread,FrameLayout 中子项的 z 顺序取决于项目的添加顺序。 .

因此您可以对图层编号进行排序,然后以正确的顺序添加子项,或者您可以使用 addView(view, index)方法。

关于android - 在 Android 中,如何在添加子项时在 FrameLayout 中设置子项的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390615/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com