在安卓系统中自定义选项卡栏

4
如何在Android中创建自定义的TabBar而不使用图片?我需要创建一个类似于下面这样的TabBar...

你可以从这个链接中找到演示:http://androidcustomviews.com/portfolio/custom-tabbar-android/ - Girish Bhutiya
3个回答

2

1

您可以将视图关联到选项卡:

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

鉴于问题,我认为这个答案缺乏很多忠实度。也许需要一个指标所在布局的示例。还可以加上一些前言和文档链接。 - ian.shaun.thomas

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;
}

希望这能对你有所帮助!


我不明白如何将所选项目变成圆形,就像凸出的那部分一样。如果您有任何自定义的想法,请帮助我。谢谢。 - Lijo John

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接