如何在Android中将TabHost添加到LinearLayout bu代码中?

问题描述

| 对于我的android应用程序,我需要在LinearLayout中实现tabView。我可以像这样将textview和button添加到LinearLayout中,
public CreateView(Context context) {
    super(context);
    LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);

    Button button = new Button(context);
    button.setText(\"Submit\");
    button.setLayoutParams(llp);
    TextView tv = new TextView(context);
    tv.setText(\"This is a test\");
    tv.setLayoutParams(llp);
    ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT);
    this.addView(tv);
    this.addView(button);}
在我的Activity类中,我将这些添加
public class MyLinearLayout extends Activity {
LinearLayout ll;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ll = new LinearLayout(this);

    ll.addView(new CreateView(this));
    setContentView(ll);

}
} 我想对tabview做同样的事情。但是我找不到将tabHost添加到lineaLayout的方法。任何方式做到这一点? 谢谢     

解决方法

        在xml中定义TabHost并使用tabHost.newTabSpec以编程方式添加标签时(如本教程所示),将创建以下结构:
LinearLayout
     TabHost>
          LinearLayout
               TabWidget
               FrameLayout
                   LinearLayout for tab 1
                   LinearLayout for tab 2
                   ...
我想您需要在代码中复制此嵌套。 xml版本中的root-LinearLayout的宽度和高度设置为fill_parent,方向设置为垂直。也许这也需要它才能起作用。