2015-05-06 5 views
0

Я пытаюсь создать кнопки через макет xml, в зависимости от параметров, захваченных с сервера (в основном, х/у). Лучшее, что я получил до сих пор, требует от меня обновления приложения каждый раз, когда я хочу новый макет, но я пытаюсь найти более эффективный способ. Таким образом, количество фактических кнопок и их позиция относительно данных, захваченных из базы данных. Как я буду продолжать это делать?Динамическая компоновка кнопок android

+1

Что вы пробовали? (BTW, тот факт, что вы настраиваете компоненты своего пользовательского интерфейса с помощью коордов, возвращаемых WS ударами моего ума.) – shkschneider

+0

, если количество возможных макетов ограничено, вы можете подготовить все возможные макеты (например, choice_1.xml, choice_2.xml, ...) и загружать их динамически. Кроме того, вы должны добавить кнопки программно. –

+0

Это просто кнопки и ничего больше? Клиент знает что-либо о макете? Например, если у вас не было ситуации с сервером, вы бы сделали AbsoluteLayout и разместили там кнопки? –

ответ

1

Чтобы переместить кнопки во время выполнения, используйте пустой <View />, размер которого установлен программно; кнопки будут, скажем, ниже этого. (Работает как для <LinearLayout ...>, так и для <RelativeLayout ...>). Используйте ViewTreeObserver.OnGlobalLayoutListener и getMeasuredWidth(), чтобы получить фактические размеры.

Обратите внимание, что вы можете сделать действительно много, просто сделав некоторые кнопки/виды невидимыми (someView.setVisibility(View.GONE), остальные два возможных значения: View.VISIBLE и View.INVISIBLE). Если это возможно, вы должны предпочесть этот подход, потому что он позволяет вам иметь более или менее разумный макет при любых обстоятельствах.

Смежные вопросы