我正在尝试创建一个单词混杂游戏,您将混乱的单词和字母交换中的字母向右或向左拖动。以编程方式在RelativeLayout中重新排序项目的最佳方式是什么?因此,当字母被拖动时,左侧的字母被放置在被拖动的字母的右侧。以编程方式重新排列RelativeLayout
我已经尝试过这样的基本测试。
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的存在”,但我只是不知道这样做有什么其他方法错误崩溃。
任何帮助将不胜感激。
是的,我明白这一点。在我左右移动时如何完成字母定位的任何建议? – 2011-02-16 13:08:37
在添加新工作之前删除两条规则,这样就永远不会有什么时候什么是循环的? – Dre 2011-02-16 13:33:25