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

1

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

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

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

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

  • 0
    Не уверен насчет этого, так что это комментарий, но если я правильно помню, вы можете сделать getLayoutParams () или что-то похожее на сам макет, чтобы получить правильные параметры макета.
Теги:

4 ответа

6
Лучший ответ

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

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

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

new LinearLayout.LayoutParams(...);

Привет

Ziteng Chen

1

Ширина и высота SetLayoutParams могут иметь только следующие 3 значения: FILL_PARENT, MATCH_PARENT и WRAP_CONTENT.

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

0

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

_llChooseType.setLayoutParams(new Layo

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню