Я хочу установить параметры LinearLayout после того, как будут вычислены все параметры вида.Настройка LayoutParams программно
Я пытаюсь установить высоту LinearLayout, связанную с высотой родительского представления. И высота родительского вида рассчитывается в соответствии с его layout_weight
, поэтому я получить высоту по getMeasuredHeight();
Мой код:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
RelativeLayout lay = (RelativeLayout) findViewById(R.id.alt);
LinearLayout bar = (LinearLayout) findViewById(R.id.barLay);
int layH = lay.getMeasuredHeight();
int barH = layH/4;
LinearLayout.LayoutParams params = (LayoutParams) bar.getLayoutParams();
params.height = barH;
bar.setLayoutParams(params);
}
Eclipse, отладчик останавливает программу на этой линии;
LinearLayout.LayoutParams params = (LayoutParams) bar.getLayoutParams();
Я не могу найти, что может быть проблемой? Я делаю что-то неправильно, чтобы установить параметры?
контрольная панель внутри какой тип макета? – Loc
Макет, который я хочу установить для параметров, - Linear, а его родительский элемент - Relative. Я попробую изменить relativeLayout на LinearLayout и написать результат здесь – ctarimli
Это сработало хорошо! Спасибо @LocHa – ctarimli