我是这样给android表添加列的:
public void addWebAction(TableLayout table){
TableRow rowWeb = new TableRow(this);
rowWeb.setWeightSum(1f);
TextView tvWeb = new TextView(this);
tvWeb.setTextSize(18);
tvWeb.setPadding(0, 10, 0, 0);
tvWeb.setText(contact.getWeb());
TableRow.LayoutParams trlp = new TableRow.LayoutParams(0, TableRow.LayoutParams.WRAP_CONTENT, 0.8f);
tvWeb.setLayoutParams(trlp);
rowWeb.addView(tvWeb);
ImageButton ibWeb = new ImageButton(this);
ibWeb.setBackgroundColor(Color.TRANSPARENT);
ibWeb.setImageResource(R.drawable.ic_action_search);
ibWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(contact.getWeb()));
startActivity(browserIntent);
}
});
trlp.weight = 0.1f;
ibWeb.setLayoutParams(trlp);
rowWeb.addView(ibWeb);
ImageButton abWeb = new ImageButton(this);
abWeb.setBackgroundColor(Color.TRANSPARENT);
abWeb.setImageResource(R.drawable.ic_action_chat);
abWeb.setLayoutParams(trlp);
rowWeb.addView(abWeb);
table.addView(rowWeb);
}
问题是:如果textview包含一个长字符串的第二列被移出屏幕。在哪种方式下,我必须添加tablelow参数来解决这个问题?
必须将weightSum赋给表布局,并将edittext的权重分为两个。您可以在这个链接中看到简单的示例:https://stackoverflow.com/a/9590974/3098590