Я пытаюсь создать игру в формате jumble, в которой вы перетаскиваете письмо вправо или влево в перемешанном слове, а буквы меняются. Каков наилучший способ переупорядочить элементы в 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», который я понимаю, но я просто не уверен, что другой способ сделать это.
Любая помощь будет очень признательна.
Да, я это понимаю. Любые предложения о том, как выполнить позиционирование букв при движении справа налево? –
Удалил бы оба правила, прежде чем добавлять новые, так что никогда не бывает, когда что-то круговое? – Dre