1

我正在使用代码动态添加 TextViews。现在我正在使用具有水平方向的 LinearLayout,我认为当 textviews 不适合该行时会添加一个新行。我错了。

事情是我不知道会有多少行,因为它取决于用户输入。因此 GridView 感觉不对,因为我无法指定列数。而且我不知道每个 TextView 的每个大小,如果 TextView 很长并且我想要每行 3 个 TextView,这可能会使它看起来很糟糕。

我确信有一个简单的解决方案,我只想知道最好的一个。当我向其中添加 TextView 时应该使用哪种布局,以便在达到屏幕宽度时在第一个下方创建一个新行?

谢谢!

4

2 回答 2

2

看到这个:

package us.simpleit;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

public class SimpleGUI extends Activity {
    TextView tv;
    EditText et;
    LinearLayout ll;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //LinearLayout ll = new LinearLayout(this);
        ll = new LinearLayout(this);
        ll.setOrientation(android.widget.LinearLayout.VERTICAL);
        ll.setLayoutParams(new ViewGroup.LayoutParams(-1,-1));
        // ARGB: Opaque Red
        ll.setBackgroundColor(0x88ff0000);

        tv = new TextView(this);
        tv.setLayoutParams(new ViewGroup.LayoutParams(-1,-2));
        tv.setText("sample text goes here");
        // ARGB: Opaque Green
        tv.setBackgroundColor(0x5500ff00);
        ll.addView(tv);

        et = new EditText(this);
        et.setLayoutParams(new ViewGroup.LayoutParams(-1,-2));
        et.setText("edit me please");
        // ARGB: Solid Blue
        et.setBackgroundColor(0xff0000ff);
        ll.addView(et);

        Button btn = new Button(this);
        btn.setText("Go!");
        btn.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                tv.setText(et.getText().toString());
            }
        });

        ll.addView(btn);
        setContentView(ll);

        //setContentView(R.layout.main);
    }
}

在这里,我采用了一个 TextView 和一个 EditText。取而代之的是,您可以采用两个 TextView 或您想要的任意数量的视图。

享受。:)

于 2012-04-26T12:08:44.640 回答
0

您可以做的事情是使您的主要 LinearLayout 具有垂直方向和许多具有水平方向的 LinearLayout 子项当您要添加 TextView 时,请获取主布局的最后一个子项以了解该子项是否可以包含您新的 TextView。如果没有,则添加一个水平方向的新 LinearLayout

于 2012-04-26T11:28:44.360 回答