gpt4 book ai didi

android - 以编程方式在线性布局中添加表格布局

转载 作者:行者123 更新时间:2023-11-29 22:04:41 25 4
gpt4 key购买 nike

我基本上想要这样的东西:

  TextView
Button
Button
.
.
.
TextView TextView
SeekBar
Button

我必须以编程方式执行此操作。现在,除了 SeekBar 上方的 TextView 未显示这一事实外,我的一切正常。

完成这项工作的相关代码是

//Setting the linear layout
ll = new LinearLayout(getApplicationContext()); //a linear layout encompasses all the other elements
ll.setOrientation(LinearLayout.VERTICAL); //orientation has to be vertical
ll.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); //the layout occupies the complete screen

//Set the TextView for the Question
tv1 = new TextView(getApplicationContext());
tv1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); //sets the dimensions of the textView
ll.addView(tv1); //add the TextView to the LinearLayout

//Set the buttons (?)
b = new Button [MAX_OPTIONS];
for(int i=0;i<MAX_OPTIONS;i++){
b[i] = new Button(getApplicationContext()); //set the context for each button
b[i].setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
ll.addView(b[i]);
}

//Set the Table Layout
tl = new TableLayout(getApplicationContext());
tl.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
tl.setColumnStretchable(0, true);
tl.setColumnStretchable(1, true);

//Set the Table Row
tr = new TableRow(getApplicationContext());
tr.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
tr.setPadding(dipConvert(5), dipConvert(5), dipConvert(5), dipConvert(5));

//Set the two TextViews
tv2 = new TextView(getApplicationContext());
tv2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv2.setGravity(Gravity.LEFT); //set the gravity of this TextView to left
tv3 = new TextView(getApplicationContext());
tv3.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv3.setGravity(Gravity.RIGHT);
tv3.setPadding(0, 0, dipConvert(15), 0); //set the padding for this to be displayed(the number 15 was emperically determined)

//Add the Textview to table row
tr.addView(tv2); tr.addView(tv3);

//Add the TableRow to the Table Layout
tl.addView(tr);

//Add the TableLayout to the LinearLayout
ll.addView(tl);

//Set the Seekbar
sb1 = new SeekBar(getApplicationContext());
sb1.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
sb1.setMax(100);
sb1.setMinimumWidth(250);
ll.addView(sb1);

//Set the Seekbar Button
sb1_b = new Button(getApplicationContext());
sb1_b.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

ll.addView(sb1_b);
setContentView(ll);

我不明白这是怎么回事。我得到的显示是这样的

   TextView
Button
Button
.
.
.

SeekBar
Button

如果有人能指出正确的方向,那就太好了。

谢谢!

最佳答案

您需要在 tableRow 元素的子元素中需要 TableRow.layout 参数。这个已经解释的很好了here .请引用并更正。这是一个非常简单的打嗝,很容易被忽略。

你的 TextView 应该是

tv2.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));

对于 tv3 也是如此。

关于android - 以编程方式在线性布局中添加表格布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11024727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com