gpt4 book ai didi

java - 以编程方式重新排序 RelativeLayout

转载 作者:行者123 更新时间:2023-11-30 09:50:44 29 4
gpt4 key购买 nike

我正在尝试创建一个拼字游戏,您可以在拼字游戏中向右或向左拖动一个字母,然后交换字母。以编程方式对 RelativeLayout 中的项目重新排序的最佳方法是什么,以便在向左拖动字母时,tile 通过的字母位于被拖动字母的右侧。

作为基本测试,我尝试过类似的方法。

public static void moveTile(Tile tile, int x, RelativeLayout parent) {
if (x < tile.getWidth()) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.LEFT_OF, tile.getId() - 1);
tile.setLayoutParams(params);

RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
p.addRule(RelativeLayout.RIGHT_OF, tile.getId());
Tile t = (Tile) parent.findViewById(tile.getId() - 1);
t.setLayoutParams(p);
}
parent.invalidate();
}

但这会导致应用程序崩溃,并出现“循环依赖项不能存在于 RelativeLayout 中”的错误,我理解这一点,但我不确定还有什么其他方法可以做到这一点。

任何帮助将不胜感激。

最佳答案

是的,这个错误意味着你不能让object1 toRightOf object2 和object2 toLeftOf object 1

关于java - 以编程方式重新排序 RelativeLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5016698/

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