3

这是我的 xml 文件

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:gravity="center" >
    </TabWidget>

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
 </FrameLayout>
</LinearLayout>

</TabHost>

这是我的 .class 文件

    TabHost tabHost = getTabHost();

    TabSpec ta1= tabHost.newTabSpec("title");
    ta1.setIndicator("title");
    Intent ta1intent = new Intent(this, 1_webview.class);
    ta1.setContent(ta1intent);

    TabSpec ta2= tabHost.newTabSpec("title1");
    ta2.setIndicator("Title1");
    Intent ta2intent = new Intent(this, 2_webview.class);
    ta2.setContent(ta2intent);

    TabSpec ta3= tabHost.newTabSpec("two linetitle");
    ta3.setIndicator("Two line title");
    Intent ta3intent = new Intent(this, 3_webview.class);
    ta3.setContent(ta3intent);

    TabSpec ta4 = tabHost.newTabSpec("two line title");
    ta4.setIndicator("Two line //n title");  //tried using line break displays Two line \N title 
    Intent ta4intent = new Intent(this, week_webview.class);
    ta4.setContent(ta4intent);

这就是我得到的

输出图像

有什么办法可以让我在 tab3 和 tab4 中的标题变成多行而不是被裁剪掉,tab3 和 tab4 中的实际文本是“两行文本”,但它只显示两行。

或者有没有办法减小字体大小以便所有单词都可见?

4

3 回答 3

3

也许标题有足够的空间,但 TabView 中的填充太大了。

就我而言,标题足够短,可以放入 API-8 到 API-14 的选项卡中,但不适用于 API-17。删除填充解决了我的问题。

将 5 个选项卡添加到我的 tabHost 后,我​​执行以下操作:

    for (int i=0; i<5; i++) {
        View tabView = tabHost.getTabWidget().getChildTabViewAt(i);
        tabView.setPadding(0, 0, 0, 0);
        TextView tv = (TextView)tabView.findViewById(android.R.id.title);
        tv.setSingleLine();
        tv.setTextSize(14);
    }
于 2013-07-19T07:22:28.660 回答
2

我相信对于较小的屏幕尺寸,显示冗长的标签名称不是一个好主意。因此,如果它太长,android会限制并切断剩余的部分。但是您可以将文本制作为图像并将其放在选项卡中

像这样的东西:

 //CRAFTING TAB
    TabSpec craftTabSpec = tabHost.newTabSpec("Crafting");      
    craftTabSpec.setIndicator("",getResources().getDrawable(R.drawable.YOURIMAGE));
    Intent craftIntent = new Intent(this, Bifrost.class);
    craftTabSpec.setContent(craftIntent);

编辑: 如果你想减小字体大小,是的,你可以。定义自己的风格。

按照如何在 android 中更改 tabhost 的字体大小的详细步骤

希望有帮助

于 2013-07-16T05:47:02.700 回答
0
        The activity must extend TabActivity implements
        OnTabChangeListener

在 onCreate()...

            tabHost = getTabHost();
            tabHost.getTabWidget().setDividerDrawable(R.color.trans);
            tabHost.getTabWidget().setShowDividers(
                    TabWidget.SHOW_DIVIDER_MIDDLE);

            tabHost.setup();
            tabHost.setOnTabChangedListener(this);

            // Inbox Tab
            TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);

            // Tab Icon
            inboxSpec.setIndicator(INBOX_SPEC);
            Intent inboxIntent = new Intent(this,
                    IndividualReminderActivity.class);

            // Tab Content
            inboxSpec.setContent(inboxIntent);


            // Outbox Tab
            TabSpec outboxSpec = tabHost.newTabSpec(OUTBOX_SPEC);


            outboxSpec.setIndicator(OUTBOX_SPEC);
            Intent outboxIntent = new Intent(this,
                    CleanUpReminderActivity.class);

            outboxSpec.setContent(outboxIntent);

            // Adding all TabSpec to TabHost
            tabHost.addTab(inboxSpec); // Adding Inbox tab
            tabHost.addTab(outboxSpec); // Adding Outbox tab


            RelativeLayout.LayoutParams rllp = new RelativeLayout.LayoutParams(
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT);
            rllp.addRule(RelativeLayout.CENTER_IN_PARENT);

            for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
                //setting background color
                tabHost.getTabWidget().getChildAt(i)
                        .setBackgroundColor(Color.parseColor("#000000"));

                //setting hieght width 
                tabHost.getTabWidget().getChildAt(i)
                        .findViewById(android.R.id.title).setLayoutParams(rllp);

                tabHost.getTabWidget().getChildAt(i).getLayoutParams().height
=100;
                tabHost.getTabWidget().getChildAt(i).getLayoutParams().width = 220;
                    }

和 xml 是

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/background_color_main"
    android:orientation="vertical" >




    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TabHost
            android:id="@android:id/tabhost"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@color/black_color"
                android:orientation="vertical" >

                <TabWidget
                    android:id="@android:id/tabs"
                    android:layout_width="fill_parent"
                    android:layout_height="60dp"

                    android:showDividers="middle"
                    android:textSize="@dimen/text_size" />

                <FrameLayout
                    android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:background="#000000" />
            </LinearLayout>
        </TabHost>

        <View
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:background="@color/ediitext_color" />
    </LinearLayout>

</LinearLayout>
于 2015-11-18T03:41:29.327 回答