Как динамически устанавливать высоту и ширину линейного макета в Android

#android

#Android

Вопрос:

У меня есть Linearlayout в моем xml, который имеет fill_parent как для высоты, так и для ширины… Теперь я хочу динамически изменять высоту и ширину… Я пытался использовать

 _llChooseType.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,getWindowManager().getDefaultDisplay().getHeight()-100));
  

Но это дает мне java.lang.ClassCastException: android.view.ViewGroup$LayoutParams
исключение…

Как это сделать?

Комментарии:

1. Не уверен в этом, так что это комментарий, но, если я правильно помню, вы можете выполнить getLayoutParams () или что-то подобное в самом вашем макете, чтобы получить правильные параметры макета.

Ответ №1:

Используйте это..

 new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,getWindowManager().getDefaultDisplay().getHeight()-100));
  

Ответ №2:

Если _llChooseType является объектом LinearLayout, то я думаю, вам следует использовать

 new LinearLayout.LayoutParams(...);
  

С уважением

Цитенг Чен

Ответ №3:

setLayoutParams widht amp; height может иметь только следующие 3 значения: FILL_PARENT, MATCH_PARENT и WRAP_CONTENT.

Вы должны использовать public void layout (int l, int t, int r, int b) , чтобы фактически изменить макет созданного представления / viewgroup.

Ответ №4:

Сделайте это… Тип:

 _llChooseType.setLayoutParams(new Layo
  

и нажмите ctrl пробел_бар.
Это предоставит вам список параметров LayoutParams на выбор … выберите LinearLayout.LayoutParams и напишите остальной код как есть.
Проблема здесь в том, что используемыми вами параметрами Layout являются ViewGroup.LayoutParams и они не применяются к линейным макетам!