Android - Buttons以编程方式添加掉屏幕

时间:2014-04-27 02:53:24

标签: android

我在屏幕上以编程方式添加了按钮,但屏幕上有一些按钮。我该怎么做才能在屏幕上显示所有按钮。我有以下代码以编程方式添加按钮。

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>

2 个答案:

答案 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)

image

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);

        }