2015-07-09 1 views
0

Есть ли способ установить высоту макета для обертывания содержимого на адаптер? Макет, который я раздуваю в моем адаптере, состоит из двух частей. Одна из частей видна, пока другая другая отсутствует, но обе они имеют wrap_content для высоты. Нравится:Как установить высоту для обертывания содержимого в адаптере

<LinearLayout 
... 
android:visibility="gone" > 
    <View 
    ... 
    android:visibility="visible" /> 
    <View 
    ... 
    android:visibility="gone" /> 
<LinearLayout> 

Теперь, нажав на кнопку, видимость второго вида будет видимой. Но проблема в том, что она не завершает контент. Высота, которую он использует, - это высота от первого вида, тот, кто уже виден.

Я попытался установить:

view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 

следующих после настройки видимости вида по видимому, но это не сработало.

Итак, есть ли способ? Или вы можете предложить какое-нибудь обходное решение? Огромное спасибо.

+1

Установили ли вы родительскую видимость 'LinearLayout' на' VISIBLE'? Если это так, то он установит его высоту, основанную на первом 'View', поскольку только тот, который видим. Если вы хотите растянуть высоту, чтобы использовать вторую высоту 'View', установите вторую видимость' View' на 'INVISIBLE'. – torque203

+0

Я знаю. но он находится в списке, поэтому наличие второго представления, установленного на INVISIBLE, выглядело бы неплохо. –

+0

Нажатие кнопки, это будет «Линейная линия», которая станет видимой., Правильно? После того, как он становится видимым, высота устанавливается равной той же сумме, что и первый «Просмотр». Это происходит потому, что второй «Просмотр» по-прежнему «ушел». Если вы не хотите показывать 'View', а make' LinearLayout' обертываете его содержимое 'invisible' - это путь. Единственный способ, которым 'LinearLayout' будет расти по высоте, - это то, что оба' View' являются 'visible'. – torque203

ответ

0

Ответ был тот, что ошибка была с разработчиком. Ха-ха. Я установил высоту ListView для упаковки содержимого вместо соответствия родительскому.

+0

просто попробуйте записать и подсчитать, сколько раз ваши элементы создаются в списке, который имеет height = "wrap_content" – savepopulation

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