在FragmentTabHost中找不到TabHost addFlags()

时间:2016-01-27 12:14:35

标签: android android-tabhost

我正在尝试刷新每个标签主机,同时单击,我尝试使用addFlags(),但我没有得到该方法。

请检查我的代码。我正在使用FragmentTabHost。是否可以在FragmentTabHost中使用addFlags()方法。

public class HomeParentFragement extends FragmentActivity implements      View.OnClickListener {

private static final String TAB_1_TAG = "tab_1";
private static final String TAB_2_TAG = "tab_2";
private static final String TAB_3_TAG = "tab_3";
private static final String TAB_4_TAG = "tab_4";
private static final String TAB_5_TAG = "tab_5";
private FragmentTabHost mTabHost;
View view;
Activity mActivity;
private float startX;
ImageButton btn_sidemenu;
Context mContext;
private LinearLayout ll, ll_profile, ll_sidemenu_wallet, ll_sidemenu_postjob, ll_howitwork, ll_help, ll_logout;
/**
 * ATTENTION: This was auto-generated to implement the App Indexing API.
 * See https://g.co/AppIndexing/AndroidStudio for more information.
 */
private GoogleApiClient client;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.bottam_layout);
    mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
    mContext = this;
    mActivity = this;
    btn_sidemenu = (ImageButton) findViewById(R.id.ibtn_sidemenu);
    mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);
    ll = (LinearLayout) findViewById(R.id.slider);
    ll_profile = (LinearLayout) findViewById(R.id.ll_sidemenu_profile);
    ll_sidemenu_wallet = (LinearLayout) findViewById(R.id.ll_sidemenu_wallet);
    ll_sidemenu_postjob = (LinearLayout) findViewById(R.id.ll_sidemenu_postJob);
    ll_howitwork = (LinearLayout) findViewById(R.id.ll_sidemenu_howitwork);
    ll_help = (LinearLayout) findViewById(R.id.ll_sidemenu_help);
    ll_logout = (LinearLayout) findViewById(R.id.ll_sidemenu_logout);
    ll.setVisibility(View.GONE);
    btn_sidemenu.setOnClickListener(this);
    ll_profile.setOnClickListener(this);
    ll_sidemenu_wallet.setOnClickListener(this);
    ll_sidemenu_postjob.setOnClickListener(this);
    ll_howitwork.setOnClickListener(this);
    ll_help.setOnClickListener(this);
    ll_logout.setOnClickListener(this);
    mTabHost.getTabWidget().setDividerDrawable(null);

    mTabHost.invalidate();
    mTabHost.addTab(
            mTabHost.newTabSpec(TAB_1_TAG).setIndicator(getTabIndicator(mTabHost.getContext(), "", getResources().getDrawable(R.drawable.home_tab_1))),
            HomeTabAdvanceSearchFragments.class, null);
    mTabHost.addTab(
            mTabHost.newTabSpec(TAB_2_TAG).setIndicator(getTabIndicator(mTabHost.getContext(), "", getResources().getDrawable(R.drawable.home_tab_2))),
            HomeTabFavouriteFragment.class, null);
    mTabHost.addTab(
            mTabHost.newTabSpec(TAB_3_TAG).setIndicator("", getResources().getDrawable(R.drawable.hometab3_normal)),
            HomeTabBasicSearchFragment.class, null);
    mTabHost.addTab(
            mTabHost.newTabSpec(TAB_4_TAG).setIndicator(getTabIndicator(mTabHost.getContext(), "", getResources().getDrawable(R.drawable.home_tab_4))),
            HomeTabMessageFragment.class, null);
    mTabHost.addTab(
            mTabHost.newTabSpec(TAB_5_TAG).setIndicator(getTabIndicator(mTabHost.getContext(), "", getResources().getDrawable(R.drawable.home_tab_5))),
            ListJobParentFragment.class, null);


    // Inflating color for the first time.
    for (int i = 0; i < mTabHost.getTabWidget().getChildCount(); i++) {
        mTabHost.getTabWidget().getChildAt(i)
                .setBackgroundColor(Color.parseColor("#FFFFFF"));
    }

    mTabHost.getTabWidget().getChildAt(mTabHost.getCurrentTab())
            .setBackgroundColor(Color.parseColor("#FFFFFF"));
    // ============== End of color inflation ==================

    mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {

        @Override
        public void onTabChanged(String tabId) {
            ll.setVisibility(View.GONE);

            // Inflating color when tab is selected.
            for (int i = 0; i < mTabHost.getTabWidget().getChildCount(); i++) {
                mTabHost.getTabWidget().getChildAt(i)
                        .setBackgroundColor(Color.parseColor("#FFFFFF"));
            }

            mTabHost.getTabWidget().getChildAt(mTabHost.getCurrentTab())
                    .setBackgroundColor(Color.parseColor("#FFFFFF"));
            // ============== End of color inflation ==================

        }
    });

    for (int i = 0; i < mTabHost.getTabWidget().getChildCount(); i++) {
        final TextView tv = (TextView) mTabHost.getTabWidget()
                .getChildAt(i).findViewById(android.R.id.title);

        if (tv == null)
            continue;
        else
            tv.setTextSize(8);

    }


    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}

private View getTabIndicator(Context context, String string, Drawable drawable) {
    View view = LayoutInflater.from(context).inflate(R.layout.tab_layout, null);
    ImageView iv = (ImageView) view.findViewById(R.id.imageViewTabView);
    iv.setImageDrawable(drawable);

    return view;
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.ibtn_sidemenu:
            ll.setVisibility(View.VISIBLE);

            break;
        case R.id.ll_sidemenu_profile:
            ll.setVisibility(View.GONE);

            Fragment newFragment = new SideMenuParentFragment();
            android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(android.R.id.tabcontent, newFragment);
            transaction.addToBackStack(null);
            transaction.commit();

            break;
        case R.id.ll_sidemenu_wallet:
            ll.setVisibility(View.GONE);

            break;

        case R.id.ll_sidemenu_postJob:
            ll.setVisibility(View.GONE);
            Fragment newFragmentPostJob = new PostJobParentFRagment();
            android.support.v4.app.FragmentTransaction transactionPostJob = getSupportFragmentManager().beginTransaction();
            transactionPostJob.replace(android.R.id.tabcontent, newFragmentPostJob);
            transactionPostJob.addToBackStack(null);
            transactionPostJob.commit();


            break;
        case R.id.ll_sidemenu_howitwork:
            ll.setVisibility(View.GONE);

            break;
        case R.id.ll_sidemenu_help:
            ll.setVisibility(View.GONE);

            break;
        case R.id.ll_sidemenu_logout:
            ll.setVisibility(View.GONE);
            Utils.removeSharedPreferences(mContext, "group_id");
            Intent i = new Intent(getApplicationContext(), MenuActivity.class);
            startActivity(i);
            finish();

            break;
    }


}



@Override
public void onBackPressed() {
    Utils.exitApp(mActivity);

}

}

1 个答案:

答案 0 :(得分:0)

tabHost.addTab(tabHost.newTabSpec("tab2")
    .setIndicator("Second Text")
    .setContent(
      new Intent(this, class2.class)
          .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
    ));

这是我的代码在我的最后工作:

 mTabHost.addTab(
                mTabHost.newTabSpec(TAB_1_TAG).setIndicator(getTabIndicator(mTabHost.getContext(), "", getResources().getDrawable(R.drawable.home_tab_1))),
                HomeTabAdvanceSearchFragments.class, null).setContent(new Intent(this, class2.class)
                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
        ));