FrameLayout layout_weight программно - PullRequest
5 голосов
/ 20 декабря 2011

Я пытаюсь создать FrameLayout программно следующим образом (это представление будет плавать в нижнем центре LinearLayout):

    FrameLayout bottomFrameLayout = new FrameLayout(context);
    bottomFrameLayout.setLayoutParams(new FrameLayout.LayoutParams(0,LayoutParams.FILL_PARENT,Gravity.CENTER | Gravity.BOTTOM));

Поскольку я установил layout_width=0dp, яхотел бы также установить layout_weight для контроля ширины.Как я могу это сделать?

1 Ответ

17 голосов
/ 20 декабря 2011

Вам необходимо использовать конструктор LinearLayout.LayoutParams (int width, int height, float weight), поскольку FrameLayout является дочерним для LinearLayout, поэтому вы устанавливаете параметры для дочернего элемента в LinearLayout.

Редактировать:

 FrameLayout bottomFrameLayout = new FrameLayout(context);
 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0,LayoutParams.FILL_PARENT,mWeight);
 lp.gravity = Gravity.CENTER | Gravity.BOTTOM;
 bottomFrameLayout.setLayoutParams(lp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...