2009-05-05 2 views
2

Я создаю пользовательский интерфейс, используя XUL. У меня есть кнопки N, которые я хотел бы добавить, и все, о чем я забочусь, это то, что все они отображаются в форме независимо от размера формы. Если я добавлю новую кнопку позже или удалю существующую кнопку, я бы просто удалил элемент < >, вместо того, чтобы перемещать вещи внутри элементов сетки или hbox/vbox.Как достичь макета потока в XUL?

Есть ли способ получить это поведение? Кажется странным, что я не могу этого добиться, учитывая, что это поведение по умолчанию в HTML.

+0

Может быть, вы могли бы перефразировать ваш вопрос. В каком смысле вам нужно «перемещать вещи внутри», когда вы удаляете кнопку? – pc1oad1etter

+1

Я думаю, что он означает, что он хочет, чтобы кнопки продолжались на следующей «линии», если они занимают слишком много места, а не, например. 1 строка кнопок становится 2 ряда. Вероятно, он имеет в виду: http://java.sun.com/docs/books/tutorial/uiswing/layout/flow.html – lithorus

+0

литровый. Без возможности автоматически «перетекать» во вторую строку, когда это необходимо, мне нужно повторно сбалансировать элементы между контейнерами ящиков сетки или {h, v}, чтобы они отображались так, чтобы они визуально отображались. Чтобы попытаться объяснить визуальную концепцию словами: допустим, у меня есть 6 кнопок, которые я хочу разместить в форме, а моя форма - 3 кнопки в ширину. Как разместить эти кнопки таким образом, чтобы кнопки добавления/удаления требовали наименьшего количества работы? Также учтите, что форма может быть изменена. – Nathan

ответ

0

HTML и XUL обрабатывают это по-другому на фундаментальном уровне. XUL основан на коробке. Вы можете видеть разницу, обсуждаемую on MDC here. Это не совсем понятно (мне) из документации, но nsBoxToBlockAdaptor может быть шагом в направлении, которое вы ищете.

+1

nsBoxToBlockAdaptor является внутренним классом в реализации Gecko, и в наши дни он даже не существует. – Nickolay

2

Попробуйте это:

<description><button/><button/><button/><button/><button/> 
       <button/><button/><button/><button/></description> 

XUL <description> on MDC

PS. вы, вероятно, захотите переосмыслить свой интерфейс, если у вас есть большое и непостоянное количество кнопок в строке :)

+0

Спасибо за предложение; Я дам вам попытку и дам вам знать, как это работает. Количество элементов пользовательского интерфейса в каждой строке является постоянным, но если я хочу добавить новый, то это боль в моей заднице, и это делает изменение размера неудобным. – Nathan

+0

Не работает, если внутри элемента tabpanel. Содержимое панели вкладок не течет. – Nathan

+0

@Nathan: вместо того, чтобы просто сказать «это не работает», вы могли бы предоставить пробную версию, демонстрирующую, что именно вы пробовали. Это увеличит вероятность того, что кто-то изучит проблему для вас. – Nickolay