【发布时间】:2012-02-06 20:54:26
【问题描述】:
所以我想做的是向 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();
}
这一直有效,直到按钮扩展屏幕宽度。所以我想要发生的是,如果按钮扩展屏幕宽度,则会有一个水平 scollbar。作为替代方案,LinearLayout 内的按钮可能会有“换行符”。
我尝试了不同的设置,包括列表视图周围的滚动视图,但我从未见过滚动条。
所以也许我的问题是 LinearLayout 没有正确调整大小?每次添加视图后,我该怎么做才能使 LinearLayout 重新计算宽度? invalidate() 完全没有效果。
感谢您的帮助。
【问题讨论】:
标签: android resize android-linearlayout