我用TableLayout布局,然后再程序中动态增加TabRow,但是TabRow里的组件不能水平对齐
代码:
- Java code
tl=(TableLayout) findViewById(R.id.zhtj_list); TableRow tr = new TableRow(ZHTJActivity.this); LinearLayout ll1=new LinearLayout(ZHTJActivity.this); ll1.setOrientation(0); LinearLayout ll2=new LinearLayout(ZHTJActivity.this); ll2.setOrientation(1); ll2.setGravity(Gravity.TOP); BorderTextView2 tv=new BorderTextView2(ZHTJActivity.this); tv.setWidth(100); tv.setHeight(100); tv.setText("自然灾害"); tv.setGravity(Gravity.CENTER); BorderTextView2 tv1=new BorderTextView2(ZHTJActivity.this); tv1.setWidth(100); tv1.setHeight(100); tv1.setText("自然灾害"); tv1.setGravity(Gravity.CENTER); BorderTextView2 tv2=new BorderTextView2(ZHTJActivity.this); tv2.setWidth(100); tv2.setHeight(50); tv2.setText("水旱灾害"); tv2.setGravity(Gravity.CENTER); ll2.addView(tv1, 100, 50); ll2.addView(tv2, 100, 50); ll1.addView(tv, 100, 100); ll1.addView(ll2, 100, 100); LinearLayout ll3=new LinearLayout(ZHTJActivity.this); ll3.setOrientation(1); LinearLayout ll4=new LinearLayout(ZHTJActivity.this); ll4.setOrientation(1); BorderTextView2 tv3=new BorderTextView2(ZHTJActivity.this); tv3.setWidth(50); tv3.setHeight(50); tv3.setText("7"); tv3.setGravity(Gravity.CENTER); BorderTextView2 tv4=new BorderTextView2(ZHTJActivity.this); tv4.setWidth(50); tv4.setHeight(50); tv4.setText("18"); tv4.setGravity(Gravity.CENTER); ll3.addView(tv3, 50, 50); ll3.addView(tv4, 50, 50); BorderTextView2 tv5=new BorderTextView2(ZHTJActivity.this); tv5.setWidth(50); tv5.setHeight(50); tv5.setText("30"); tv5.setGravity(Gravity.CENTER); BorderTextView2 tv6=new BorderTextView2(ZHTJActivity.this); tv6.setWidth(50); tv6.setHeight(50); tv6.setText("70"); tv6.setGravity(Gravity.CENTER); ll4.addView(tv5, 50, 50); ll4.addView(tv6, 50, 50); tr.addView(ll1, 200, 100); tr.addView(ll3, 50, 100); tr.addView(ll4, 50, 100); tl.addView(tr, new TableLayout.LayoutParams(300, 100));
------解决方案--------------------
tv.setWidth(100); tv.setHeight(100);
这个最好使用setLayoutParams