Android - программно укажите высоту и ширину нового ScrollView - PullRequest
5 голосов
/ 26 января 2011

Я новичок в Android, и я прорабатываю учебник по программному созданию макета вместо того, чтобы делать это через XML, я немного застрял, может кто-нибудь посоветует, пожалуйста.

Итак, у меня есть ScrollView, затем я добавил в него LinearLayout, я хочу, чтобы оба были определенного размера - 480 x 800 (код ниже). Я был в состоянии установить размер в LinearLayout, но я не могу получить ScrollView, чтобы быть таким же размером, но я не могу найти, как это сделать.

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

ScrollView home_scroll = new ScrollView(this);
LinearLayout home_linear = new LinearLayout(this);
home_linear.setOrientation(LinearLayout.VERTICAL);

home_scroll.addView(home_linear, new LinearLayout.LayoutParams(480, 800));

Любая помощь будет принята с благодарностью, спасибо.

Ответы [ 3 ]

18 голосов
/ 26 января 2011

Попробуйте настроить его так:

home_scroll.setLayoutParams(new ViewGroup.LayoutParams(480, 800));
home_scroll.addView(home_linear, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

Линейный макет теперь должен заполнить вид прокрутки.

1 голос
/ 05 декабря 2013

Простой способ указать динамическую ширину и высоту: -

 LayoutParams layout = new LayoutParams(LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT);
            layout.setMargins(screenWidth / 5, screenHeight - cardHeight - 30, 0, 0);
            tvConftxt.setLayoutParams(layout);
1 голос
/ 26 января 2011

Вы пытались сделать что-то вроде

home_scroll.setLayoutParams(..,..);

, вы можете найти эти здесь

setLayoutParams(ViewGroup.LayoutParams params) 
Set the layout parameters associated with this view.
...