Установить пользовательский компонент Высота / Ширина программно - PullRequest
1 голос
/ 18 марта 2011

У меня есть пользовательский компонент, в котором я знаю, что ширина и высота всегда следующие:

android:layout_width="fill_parent" 

android:layout_height="wrap_content"

Я бы не хотел указывать ширину и высоту в XML, поскольку любые другие настройки неверны.

Я много чего перепробовал, но ничего не работает. Например, этот код не работает:

public class MyLayout extends ViewGroup {...

LayoutParams layoutParams = 
new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
setLayoutParams(layoutParams);

но что бы я ни делал, я получаю сообщение об исключении "Вы должны указать атрибут layout_width". который исчезнет, ​​если я верну XML layout_width, layout_height.

Я также пытался переопределить onFinishInflate(), но это никогда не вызывается. Я пытался наследовать от View, ViewGroup и TableLayout. Я пытался позвонить getLayoutParams(), но он возвращает ноль.

Как сделать так, чтобы мой пользовательский компонент не нуждался в них, указанных в XML?

Пожалуйста, не выдумывай.

Спасибо.

1 Ответ

1 голос
/ 18 марта 2011

У вас есть ответ,

LayoutParams layoutParams = new LayoutParams (ширина, высота);setLayoutParams (layoutParams);

высота и ширина указываются в px, dip, sp

В качестве альтернативы, некоторые из них предоставляют методы setHeight и setWidth, их можно использовать.

...