Ejemplo n.º 1
0
  private void initTabs() {
    MainTab[] tabs = MainTab.values();
    final int size = tabs.length;
    for (int i = 0; i < size; i++) {
      MainTab mainTab = tabs[i];
      TabSpec tab = mTabHost.newTabSpec(getString(mainTab.getResName()));
      View indicator =
          LayoutInflater.from(getApplicationContext()).inflate(R.layout.tab_indicator, null);
      TextView title = (TextView) indicator.findViewById(R.id.tab_title);
      Drawable drawable = this.getResources().getDrawable(mainTab.getResIcon());
      title.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null);
      if (i == 2) {
        indicator.setVisibility(View.INVISIBLE);
        mTabHost.setNoTabChangedTag(getString(mainTab.getResName()));
      }
      title.setText(getString(mainTab.getResName()));
      tab.setIndicator(indicator);
      tab.setContent(
          new TabContentFactory() {

            @Override
            public View createTabContent(String tag) {
              return new View(MainActivity.this);
            }
          });
      mTabHost.addTab(tab, mainTab.getClz(), null);

      if (mainTab.equals(MainTab.ME)) {
        View cn = indicator.findViewById(R.id.tab_mes);
        mBvNotice = new BadgeView(MainActivity.this, cn);
        mBvNotice.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);
        mBvNotice.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10);
        mBvNotice.setBackgroundResource(R.drawable.notification_bg);
        mBvNotice.setGravity(Gravity.CENTER);
      }
      mTabHost.getTabWidget().getChildAt(i).setOnTouchListener(this);
    }
  }