2010-06-24 4 views
1

Я работаю над созданием панели действий, как у новых шаблонов пользовательских интерфейсов Android, и я столкнулся с некоторыми проблемами. У меня есть ViewSwitcher с двумя макетами в нем. Когда пользователь нажимает кнопку поиска, я анимация между двумя макетами. Проблема в том, что макеты разных размеров, и я не могу понять, как заставить их занимать одинаковое пространство. Вот что я имею в виду. постскриптум простите плохое искусство, они являются обладателями только место;)Реализация панели действий Android

Красная коробка находится прямо против ViewSwitcher и существует разрыв между тем, что и на панели действий для этого макета:

Gap

но это не один:

No Gap

То, что я хочу сказать, макеты в ViewSwitcher быть одинакового размера. Как я могу это сделать?

ответ

0

Вы можете попробовать установить андроид: minHeight на маленьком, чтобы быть тем, чем высотой более крупного. Или, возможно, установить его непосредственно на ViewSwitcher.


Идея:

ViewSwitcher только позволяет добавить два View с и в вашем случае они являются двумя ViewGroup s. Вы можете позвонить View#measure по каждому из видов, которые вы добавляете к ViewSwitcher. Похоже, вы должны использовать ViewGroup.LayoutParams.WRAP_CONTENT для каждого параметра до measure. Затем вы можете вызвать View.getMeasuredHeight на каждый вид. То, что когда-либо было большим, устанавливало меньший вид, используя View#setMinHeight.

+0

Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, насколько велика большая. Это зависит от размера 'EditText'. Я видел три разных размера на трех разных телефонах. :( – CaseyB

+0

Я попробую ваше новое предложение, но это немного больше кода. Я надеялся сохранить его в xml. – CaseyB

+0

вы можете просто использовать android: measureAllChildren = "false" на viewSwitcher? Http: // stackoverflow .com/вопросы/5466537/How-To-Get-viewswitcher к обертке-только-в-настоящий-отображаемый ракурс высоту – topwik

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