如何减少标签栏高度并在底部显示

moh*_*han 2 android

任何人都可以告诉如何减少标签栏的高度和底部显示标签栏

谢谢

Ric*_*pal 26

使用以下代码行来更改高度,这是我的onCreate方法的最后一行

tabHost.getTabWidget().getChildAt(0).getLayoutParams().height =35;
Run Code Online (Sandbox Code Playgroud)


小智 9

将以下方法添加到扩展TabActivity的类中

 public void addNewTab(Context context, String title, int height){
     TabHost tabHost = getTabHost();  // The activity TabHost
     Intent intent = new Intent().setClass(context, HelloTabsActivity.class);
     TabHost.TabSpec spec = tabHost.newTabSpec(title.toLowerCase()).setIndicator(title).setContent(intent);
     tabHost.addTab(spec);
     int totalTabs = tabHost.getTabWidget().getChildCount();
     ((RelativeLayout)tabHost.getTabWidget().getChildTabViewAt(totalTabs-1)).removeViewAt(0);
     ((TextView)((RelativeLayout)tabHost.getTabWidget().getChildTabViewAt(totalTabs-1)).getChildAt(0)).setHeight(30);
     tabHost.getTabWidget().getChildAt(totalTabs-1).getLayoutParams().height = height;
 }
Run Code Online (Sandbox Code Playgroud)

然后把它称为addNewTab(这个,"标题标题",30);


184*_*615 8

请注意,您必须更改每个选项卡的高度.对于两个标签:

@Override
public void onCreate(Bundle savedInstanceState) {
    ... // other code
    final int height = 45;
    mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height = height;
    mTabHost.getTabWidget().getChildAt(1).getLayoutParams().height = height;
}
Run Code Online (Sandbox Code Playgroud)


Don*_*Gru 5

你可以

  • 使用TableLayout屏幕底部的构建您自己的选项卡- 这为您提供了很大的灵活性

要么

  • 修改使用现有的TabHost/ TabWidget- 原则上工作,但我不知道如何减少标签栏的高度.像那样工作:

布局文件main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TabHost android:id="@+id/tab_host"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
        <TabWidget android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:id="@android:id/tabs"
            android:layout_gravity="bottom" />
        <FrameLayout android:id="@android:id/tabcontent"
            android:layout_width="fill_parent" android:layout_height="fill_parent" >
            <LinearLayout android:id="@+id/first_tab"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="fill_parent" >
                <TextView android:layout_width="fill_parent"
                    android:layout_height="fill_parent" android:text="First Tab" />
                <!-- Replace TextView with your layout content for this tab -->
            </LinearLayout>
            <LinearLayout android:id="@+id/second_tab"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="fill_parent" >
                <TextView android:layout_width="fill_parent"
                    android:layout_height="fill_parent" android:text="Second Tab" />
                <!-- Replace TextView with your layout content for this tab -->
            </LinearLayout>
            <LinearLayout android:id="@+id/third_tab"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="fill_parent" >
                <TextView android:layout_width="fill_parent"
                    android:layout_height="fill_parent" android:text="One More Tab" />
                <!-- Replace TextView with your layout content for this tab -->
            </LinearLayout>
            <LinearLayout android:id="@+id/edit_item_text_tab"
                android:orientation="vertical" android:layout_width="fill_parent"
                android:layout_height="fill_parent" />
        </FrameLayout>
    </TabHost>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您的活动的源代码 StartActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class StartActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TabHost tab_host = (TabHost) findViewById(R.id.tab_host);
        tab_host.setup();

        TabSpec tabspec1 = tab_host.newTabSpec("TAB_1");
        tabspec1.setIndicator("Tab 1");
        tabspec1.setContent(R.id.first_tab);
        tab_host.addTab(tabspec1);

        TabSpec tabspec2 = tab_host.newTabSpec("TAB_2");
        tabspec2.setIndicator("Tab 2");
        tabspec2.setContent(R.id.second_tab);
        tab_host.addTab(tabspec2);

        TabSpec tabspec3 = tab_host.newTabSpec("TAB_3");
        tabspec3.setIndicator("Tab 3");
        tabspec3.setContent(R.id.third_tab);
        tab_host.addTab(tabspec3);

        tab_host.setCurrentTab(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

原来看起来像:

替代文字