Как добавить динамически созданную LinearLayout в ScrollView? - PullRequest
2 голосов
/ 01 марта 2012

Я хочу динамически добавить некоторые виджеты, например, так:

LinearLayout llay = new LinearLayout(this); 
llay.setOrientation(LinearLayout.HORIZONTAL); 

LinearLayout.LayoutParams llp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
llp.weight = 1.0f; 

CheckBox cb = new CheckBox(getApplicationContext()); 
cb.setText("1"); 
cb.setLayoutParams(llp); 
llay.addView(cb);

ScrollView svh = (ScrollView) findViewById(R.id.scrollViewHost);
svh.AddView(llay);

... но я получаю: «Метод AddView (LinearLayout) не определен для типа ScrollView»

Так что я должен сделать, чтобы добавить LinearLayout в существующий ScrollView?

Ответы [ 3 ]

2 голосов
/ 01 марта 2012

Потому что Java чувствительна к регистру?AddView()! = addView().Также (хотя и не в корне проблемы) обратите внимание, что у ScrollView может быть только один дочерний элемент.

1 голос
/ 01 марта 2012

Решена ли ваша проблема с помощью ответа dmon?

Убедитесь, что у вас правильно написано addView ().Ява чувствительна к регистру.addView () и AddView () - это разные вещи.

Также убедитесь, что вы добавляете ScrollView в макет OneParent.То есть, поскольку вы можете добавить ScrollView к макету «Только один родительский элемент».

Итак, предположим, что у вас есть два макета, например LinearLayout и RelativeLayout, и если вы предоставите One ScrollView для обоих макетов, это приведет к ошибке.

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

Надеюсь, вы поняли.

Спасибо.

Наслаждайтесь.:)

1 голос
/ 01 марта 2012

Это addView (), а не AddView (). Или это была просто опечатка в вашем вопросе?

...