android - 在 Android 中创建自定义选项卡

标签 android android-layout tabs

我想在 Andorid 中创建自定义标签。我搜索了很多但没有找到任何相关的东西。我想创建这样的标签 enter image description here

我的代码生成这个

enter image description here

我的代码是这样的

CustomTabActivity.java

public class CustomTabActivity extends TabActivity {

    private TabHost mTabHost;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mTabHost = getTabHost();
        mTabHost.setup();
        Intent intentAndroid1 = new Intent().setClass(this,Tab1.class);
        TabSpec tab1 = mTabHost
                .newTabSpec("Android")
                .setIndicator("",getResources().getDrawable(R.drawable.icon))
                .setContent(intentAndroid1);


        Intent intentAndroid2 = new Intent().setClass(this,Tab2.class);
        TabSpec tab2 = mTabHost
                .newTabSpec("Android")
                .setIndicator("",getResources().getDrawable(R.drawable.icon))
                .setContent(intentAndroid2);
        mTabHost.addTab(tab1);
        mTabHost.addTab(tab2);
    }
}

主.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:orientation="vertical" >

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
            </TabWidget>

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

</LinearLayout>

最佳答案

如果您只想使用选项卡名称而不是选项卡的图标/图像,只需更改 TabSpec.setIndicator() 方法即可。

像这样:

Intent intentAndroid1 = new Intent().setClass(this, Tab1.class);
TabHost.TabSpec tab1 = mTabHost
                .newTabSpec("Android")
                .setIndicator("Rankings")
                .setContent(intentAndroid1);


Intent intentAndroid2 = new Intent().setClass(this, Tab2.class);
TabHost.TabSpec tab2 = mTabHost
                .newTabSpec("Android")
                .setIndicator("My Team")
                .setContent(intentAndroid2);

产生这样的东西(Android 4.3):

enter image description here

有关 TabHost.TabSpec 的更多信息,请查看 Android 开发人员中心文档:http://developer.android.com/reference/android/widget/TabHost.TabSpec.html

关于android - 在 Android 中创建自定义选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19729554/

相关文章:

android - npm 安装时 react 导航错误

android - 在android中显示谷歌地图时出错

android - 将闪烁添加到自定义 ListView 项目?

android - 如何在 TextView 的左上角设置可绘制对象?

Android EditText 焦点问题,错误的 EditText

java - 接口(interface) OnClickListener 无法使用我的 onClick 方法?

android - 选项卡 fragment - 选项卡随 fragment 侧面的按钮操作而变化

android - 如何更改 RemoteViews 中的文本大小

c++ - 用新的小部件替换 QTabWidget 的页面

mysql - 使用从 Shiny 的选择输入功能中选择的名称创建选项卡