如何将TabHost标题名称设置为两行

时间:2014-01-30 13:48:07

标签: android android-tabhost android-tabs

我需要将tabhost的标题设置为两行。 当我选择选项卡时,我将全文视为可自动滚动的东西,但我需要它以两行显示,以便始终完全可见。任何人都可以帮忙!

public class Tabs extends Activity implements OnClickListener {
TabHost th;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabs);
    th = (TabHost) findViewById(R.id.tabhost);



    th.setup();
    TabSpec specs = th.newTabSpec("tag1");
    specs.setContent(R.id.tab1);
    specs.setIndicator("Large Text");

//That is i need to put "Large" in one line and "Text" in next line in the title of the tabhost     

    th.addTab(specs);

    specs = th.newTabSpec("tag2");
    specs.setContent(R.id.tab2);
    specs.setIndicator("Small");
    th.addTab(specs);

    specs = th.newTabSpec("tag3");
    specs.setContent(R.id.tab3);
    specs.setIndicator("TEXT");
    th.addTab(specs);

    specs = th.newTabSpec("tag4");
    specs.setContent(R.id.tab4);
    specs.setIndicator("TXET");
    th.addTab(specs);

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

}

}

1 个答案:

答案 0 :(得分:0)

首先,我会告诉您,我不建议将长文本设置为标签名称。标题标题旨在提供简短易懂的描述,将您的姓名设置为长文本可能会使您的用户复杂化。

说,一种方法是定义一个新的布局,您可以在其中实现两个单独的TextView,或者只将一个maxLines属性设置为2。这样,您可以通过执行以下操作来inflate您的标签:

final View view = LayoutInflater.from(context).inflate(R.layout.your_new_tab_layout, null);
TextView tv1 = view.findViewById(R.id.your_first_line_textview);
TextView tv2 = view.findViewById(R.id.your_second_line_textview);
tv1.setText("My first line");
tv2.setText("My second line");

或者,使用第二种方法:

final View view = LayoutInflater.from(context).inflate(R.layout.your_new_tab_layout, null);
TextView tv = view.findViewById(R.id.your_double_line_textview);
tv.setText("First line\nSecond line);