我在屏幕上以编程方式添加了按钮,但屏幕上有一些按钮。我该怎么做才能在屏幕上显示所有按钮。我有以下代码以编程方式添加按钮。
for (String string : str_array) {
counter++;
final int value = counter;
LinearLayout l_layout = (LinearLayout) findViewById(R.id.linear_layout);
l_layout.setOrientation(LinearLayout.HORIZONTAL);
Button btn = new Button(this);
btn.setText(string);
btn.setId(counter);
l_layout.addView(btn);
}
然后我在xml中有这个代码:
<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
</LinearLayout>
答案 0 :(得分:0)
您的布局是水平的,因此您可以添加许多按钮,并且无法适应设备宽度。您必须使用HorizontalScrollView
作为布局xml
LinearLayout
的父级
将布局更改为
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
</LinearLayout>
答案 1 :(得分:0)
for (String string : str_array) {
counter++;
final int value = counter;
LinearLayout l_layout = (LinearLayout) findViewById(R.id.linear_layout);
l_layout.setOrientation(LinearLayout.HORIZONTAL);
Button btn = new Button(this);
LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,1f);
btn.setLayoutParams(layoutParams);
btn.setText(string);
btn.setId(counter);
l_layout.addView(btn);
}