Установка положения представления в API Level 7 программно


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

LayoutParams params = bottomBar.getLayoutParams();
params.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,(float) 5, getResources().getDisplayMetrics());
params.width = LayoutParams.MATCH_PARENT;
bottomBar.setLayoutParams(params);
bottomBar.setLeft(0);
bottomBar.setTop(this.getHeight()-bottomBar.getHeight());

ЗАДАЧА

Ошибка, которую я получаю, заключается в том, что я не могу использовать свойства setLeft и setTop на уровнях api меньше 11.

ВОПРОС

Как программно задать положение вида в API level < 11

1 4

1 ответ:

Похоже, что вы уже создаете пользовательский вид, поэтому вы должны переопределить onLayout() и вызвать View#layout(int left, int top, int right, int bottom) на нужном макете.

final int left = 0;
final int top = getHeight() - bottomBar.getHeight();
final int right = left + bottomBar.getWidth();
final int bottom = top + bottomBar.getHeight();
bottomBar.layout(left, top, right, bottom);