так что я хочу добавить кнопки в программу LinearLayout, все работает отлично. Я хочу, чтобы они отображались в виде одной строки кнопок в горизонтальном порядке, поэтому я установил LinearLayout так:
<LinearLayout
android:id="@+id/button_frame"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</LinearLayout>
Затем я добавляю кнопки программно:
for (String text: textlist) {
Button cbut = new Button(context);
cbut.setText(text);
cbut.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
cbut.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
Log.d(LOGTAGNAME, "TEST: " + buttonText);
}
});
button_frame.addView(cbut);
button_frame.invalidate();
}
Это работает, пока кнопки не увеличивают ширину экрана. Так что я хочу, чтобы горизонтальная полоса прокрутки, если кнопки увеличивают ширину экрана. В качестве альтернативы может быть «разрыв строки» для кнопок внутри LinearLayout.
Я пробовал разные настройки, включая просмотр прокрутки вокруг списка, но я никогда не видел полосу прокрутки.
Так, может быть, моя проблема в том, что LinearLayout неправильно изменяет размеры? Что мне нужно сделать, чтобы LinearLayout пересчитывал ширину каждый раз после добавления вида? invalidate () не имеет никакого эффекта.
Спасибо за любую помощь.