Android 将文本视图动态添加到布局并进行相应调整

Android 将文本视图动态添加到布局并进行相应调整,android,android-layout,textview,xamarin.android,Android,Android Layout,Textview,Xamarin.android,我用代码动态添加文本视图。现在我使用了一个水平方向的LinearLayout,我认为当文本视图不适合该行时,它会添加一个新行。我错了 问题是我不知道会有多少行,因为这取决于用户输入。因此,GridView感觉不太好,因为我无法指定列数。我不知道每一个文本视图的大小,如果一个文本视图很长,我希望每行有3个文本视图,这可能会让它看起来很糟糕 我相信有一个简单的解决办法,我只想知道最好的。当我向其中添加文本视图时,应该使用哪种布局,以便在达到屏幕宽度时在第一行下方生成新行 谢谢 您可以做的事情是使您的

我用代码动态添加文本视图。现在我使用了一个水平方向的LinearLayout,我认为当文本视图不适合该行时,它会添加一个新行。我错了

问题是我不知道会有多少行,因为这取决于用户输入。因此,GridView感觉不太好,因为我无法指定列数。我不知道每一个文本视图的大小,如果一个文本视图很长,我希望每行有3个文本视图,这可能会让它看起来很糟糕

我相信有一个简单的解决办法,我只想知道最好的。当我向其中添加文本视图时,应该使用哪种布局,以便在达到屏幕宽度时在第一行下方生成新行


谢谢

您可以做的事情是使您的主要线性布局具有垂直方向,并使许多线性布局的子对象具有水平方向 如果要添加TextView,请获取主布局的最后一个子级,以了解此子级是否可以包含新的TextView。如果没有,则添加具有水平方向的新线性布局参见:

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都会有一个名称,用户可能会决定删除一些名称,同时保留一些其他名称。这也是一个解决方案,不过我会选择droid。这只是用新的textview替换旧的textview。如何在旧文本视图旁边添加新文本视图?