我想添加5块TextView和编辑文本,如下所示
文本视图----编辑文本----文本视图
文本视图----编辑文本----文本视图
文本视图----编辑文本----文本视图
文本视图----编辑文本----文本视图
文本视图----编辑文本----文本视图
我尝试了以下内容:
LinearLayout rootLayout = (LinearLayout) findViewById(R.id.root_layout);
for (int i = 0; i < 6; i++) {
rootLayout.setOrientation(LinearLayout.HORIZONTAL);
TextView textView = new TextView(this);
textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,1));
textView.setText("Text");
rootLayout.addView(textView);
EditText editText = new EditText(this);
editText.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,1));
rootLayout.addView (editText);
TextView addTextView = new TextView(this);
addTextView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,1));
addTextView.setText("Additional Text");
rootLayout.addView(addTextViewtextView);
// TextView dividerLine = new TextView(this);
// rootLayout.setOrientation(LinearLayout.VERTICAL);
// rootLayout.addView(dividerLine);
使用上面的代码水平添加所有15(3 * 5)视图。当我取消注释最后三行时,所有视图都是垂直添加的。看来布局是根据程序中的最后一个setOrientation语句设置的。
答案 0 :(得分:2)
LinearLayout rootLayout = (LinearLayout) findViewById(R.id.root_layout);
rootLayout.setOrientation(LinearLayout.VERTICAL);
//this layout still needs to be vertical to hold the children.
for (int i = 0; i < 6; i++) {
//make a new horizontal LinearLayout each time to hold the children.
LinearLayout temp = new LinearLayout(this);
temp.setOrientation(LinearLayout.HORIZONTAL);
temp.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT,1));
TextView textView = new TextView(this);
textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,1));
textView.setText("Text");
temp.addView(textView); //add them to this temporary layout.
EditText editText = new EditText(this);
editText.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,1));
temp.addView (editText);
TextView addTextView = new TextView(this);
addTextView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,1));
addTextView.setText("Additional Text");
temp.addView(addTextViewtextView);
rootLayout.addView(temp);
通过这种方式,您可以在其中添加多个线性布局。所以基本上,对于每组TextView
,您要单独LinearLayout
,然后将这些布局中的每一个添加到仍然垂直方向的主LinearLayout
。
答案 1 :(得分:1)
您的代码应该遵循这种方式。
findViewById()的根布局,将其方向设置为垂直。
开始循环
采用线性布局,将方向设置为水平 3.1添加文本视图 3.2添加编辑文本 3.3添加文本视图
将此第3步线性布局添加到根布局。
用于循环停止。