我有一个 FrameLayout,它将容纳一组 ImageView。我使用 FrameLayout 是因为我实际上希望它们重叠。但是,当我将项目添加到布局中时,我不希望它们只是堆叠。我实际上需要订购它们。
图像是从存储中提取的,我将它们的正确顺序存储在我的数据库中,因此:
Image1 - layerNumber: 3
Image2 - layerNumber: 12
Image3 - layerNumber: 1
Image4 - layerNumber: 34
Image5 - layerNumber: 6
Image6 - layerNumber: 30
当我将它们放置在 FrameLayout 中时,我需要将它们按照 LayerNumber 顺序放置在布局中。另外,当我使用该应用程序时,我会一次添加一个或多个。我可能会添加“Image50 - layerNumber: 10”的选项卡。
我希望做的是使用类似 ImageView.setChildOrder(x) 或类似的东西。有什么办法可以做到这一点吗?
- - - 编辑 - - -
根据 @fifarunnerr 我做了这样的事情:
productLayers.addView(productIV, Integer.parseInt(productItem.get(1)));
productItem.get(1)
只是层数。在本例中,它位于第 23 层。
我收到错误:java.lang.IndexOutOfBoundsException: index=23 count=3
我理解这个错误:我试图在第 23 个位置有 3 个“点”的布局中放置一个视图。正如您在我之前的数字中所看到的,layerNumber 并不总是采用 1..2..3..4... 模式。