我如何以编程方式为TextView甚至TableRow为基于Android的应用程序添加保证金?

时间:2011-12-03 17:53:53

标签: android textview margin tablelayout

嗨我试图以编程方式添加保证金

我尝试过使用

TextView tv = new TextView(this);
LayoutParams params = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
params.setMargins(100, 20, 0, 0);
layout.addView(tv, params);

使用android.widget.LinearLayout.LayoutParams,但由于该表,我得到了运行时错误。

那我该怎么办呢?

这是我的代码:

//create table row
TableRow trA = new TableRow(this);
        trA.setId(1000+i);
        trA.setLayoutParams(new LayoutParams (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));

        //add data to table row
        TextView tvA = new TextView (this);
        tvA.setId(2000+i);
        tvA.setText(aList.get(i).toString());
        tvA.setTextSize(18);
        tvA.setTextColor(Color.BLACK);
        tvA.setClickable(true);
        tvA.setOnClickListener(this);
        tvA.setSingleLine(false);
        tvA.setHorizontallyScrolling(false);
        tvA.setWidth(0);
        tvA.setHeight(100);

        trA.addView(tvA);
        tableA.addView(trA,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

==使用import android.widget.TableLayout.LayoutParams编辑; ==

我在声明tablerow

的末尾添加了这个
LayoutParams params = new LayoutParams (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
params.setMargins(0, 0, 0, 20);

并在tableA

编辑了addView
tableA.addView(tvA, params);

我在日志猫中有错误,它显示的很多,所以我在这里给了主要的一个:指定的孩子已经有了父母。您必须首先在孩子的父母身上调用removeView()。

2 个答案:

答案 0 :(得分:4)

TableRow.LayoutParams params = new TableRow.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
params.setMargins(100, 20, 0, 0);

答案 1 :(得分:0)

您可以尝试使用TableRow.LayoutParams代替。

因此请将导入更改为

import android.widget.TableRow.LayoutParams