在Android中生成对称表

在Android中生成对称表,android,tableview,row,Android,Tableview,Row,我的桌面布局有点问题。我想创建一个具有对称行/列的表,即一个布局,其中的每个TextView都会像所有其他视图一样获得完全相同的空间量,而不管附加了什么文本 for (String s : buffer) { TextView tv = new TextView(this); tv.setLayoutParams(new TableRow.LayoutParams(0x00, LayoutParams.WRAP_CONTENT, 1f));

我的桌面布局有点问题。我想创建一个具有对称行/列的表,即一个布局,其中的每个TextView都会像所有其他视图一样获得完全相同的空间量,而不管附加了什么文本

for (String s : buffer) {
            TextView tv = new TextView(this);
            tv.setLayoutParams(new TableRow.LayoutParams(0x00, LayoutParams.WRAP_CONTENT, 1f));
            tv.append(s);       
            row.addView(tv, new TableRow.LayoutParams(LayoutParams.FILL_PARENT));   
        }   
重要的是,这可以通过使用Java代码而不是XML文件来完成

for (String s : buffer) {
            TextView tv = new TextView(this);
            tv.setLayoutParams(new TableRow.LayoutParams(0x00, LayoutParams.WRAP_CONTENT, 1f));
            tv.append(s);       
            row.addView(tv, new TableRow.LayoutParams(LayoutParams.FILL_PARENT));   
        }   
最好知道这种布局要求两个表相邻,即每个表只有屏幕大小的50%。我想这会导致几个LayoutParameter不可用(例如,FILL\u PARENT)

for (String s : buffer) {
            TextView tv = new TextView(this);
            tv.setLayoutParams(new TableRow.LayoutParams(0x00, LayoutParams.WRAP_CONTENT, 1f));
            tv.append(s);       
            row.addView(tv, new TableRow.LayoutParams(LayoutParams.FILL_PARENT));   
        }   
这就是我所尝试的:

for (String s : buffer) {
            TextView tv = new TextView(this);
            tv.setLayoutParams(new TableRow.LayoutParams(0x00, LayoutParams.WRAP_CONTENT, 1f));
            tv.append(s);       
            row.addView(tv, new TableRow.LayoutParams(LayoutParams.FILL_PARENT));   
        }   

但看起来仍然很糟糕。

这将创建两列,它们以有序的方式共享宽度

for (String s : buffer) {
            TextView tv = new TextView(this);
            tv.setLayoutParams(new TableRow.LayoutParams(0x00, LayoutParams.WRAP_CONTENT, 1f));
            tv.append(s);       
            row.addView(tv, new TableRow.LayoutParams(LayoutParams.FILL_PARENT));   
        }   
<TableLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <TableRow>
        <!-- Set the width to 0dp and set layout_weight=1! on both Views-->
        <TextView
            android:text="This is text1, its pretty long but that shouldn't be a problem"
            android:layout_marginLeft="1px"
            android:background="#ff0000"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content" />

        <TextView
            android:text="Shorter"
            android:background="#00ff00"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content" />
    </TableRow>
</TableLayout>

基本上,您将每个项目的大小(宽度/高度)设置为0,将重量设置为1,对于每个表格行,我有两个问题:首先,我的编程基于两个单独的表格布局,分别调整了屏幕的50%。第二,我完全不知道如何在Java中设置权重或边距(为了好看)……好吧,两种布局的屏幕的50%都是50%——所以它们仍然应该对齐。不过,添加另一个TableRow“更漂亮”。添加做同样事情的代码也应该很简单。是的,我终于设法使用了谷歌,对不起。通过在TextView tv上使用“tv.setLayoutParams(新的LinearLayout.LayoutParams(0x00,LayoutParams.WRAP_CONTENT,1f));”它实际上应该为它提供与XML中相同的参数。不幸的是,它一直看起来很糟糕。我已经在我的帖子中添加了用于显示的全部代码。转储您的视图截图并附加到问题?我真是个白痴。。。我已将LayoutParams添加到TextView而不是行。谢谢,伙计,现在看起来很漂亮!