Android中的自定义标签栏

时间:2012-10-01 11:31:32

标签: android android-layout user-interface tabs uinavigationbar

如何在android中创建不使用图像的自定义标签栏?我需要创建一个类似这样的标签栏......

enter image description here

3 个答案:

答案 0 :(得分:2)

我在stackoverflow本身找到了我的问题的答案

请参考Hardik Gajjar在以下问题中所做的回答:

How to create center raised tabbar in android?

答案 1 :(得分:1)

您可以将视图与标签相关联:

tabHost.newTabSpec("name").setIndicator(R.id.your_view)

答案 2 :(得分:0)

您必须为每个标签按钮创建自定义视图,并为相机标签返回不同的视图。我想是这样的:

private void fillTabHost() {

    setupTab(ONE, new Intent().setClass(this, Activity.class), "title",R.drawable.icon);
    setupTab(TWO, new Intent().setClass(this, Activity.class), "title", R.drawable.icon);
    setupTab(THREE, new Intent().setClass(this, Activity.class), "title",R.drawable.icon);
    setupTab(FOUR, new Intent().setClass(this, Activity.class), "title",R.drawable.icon);
    setupTab(FIVE, new Intent().setClass(this, Activity.class), "title",R.drawable.icon);
}

private void setupTab(final String tag, Intent intent, int label, int icon) {
    View tabview = createTabView(tag, mContext, label, icon);
    TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(intent);
    mTabHost.addTab(setContent);
}

private static View createTabView(String tag, final Context context, final int text, final int icon) {
    if(tag.equals("THREE")){
        // TODO return your CAMERA view
    }else{
        View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
        ImageView iv = (ImageView) view.findViewById(R.id.tabsIcon);
        iv.setBackgroundResource(icon);
        TextView tv = (TextView) view.findViewById(R.id.tabsText);
        tv.setText(text);
    }
    return view;
}

我希望这可以帮到你!