3

フラグメントタブページャーの例を使用しようとしています: API 4+デモ/フラグメントタブページャーをサポートし、タブを追加および削除できる必要があるため、タブを削除する機能を追加します。

私はもう試した:

public void removeTab(int position) {
    mTabHost.getTabWidget().removeView(mTabHost.getTabWidget().getChildTabViewAt(position));
}

しかし、これは機能しません。

また、すべてのタブを削除し、最初にタブを追加したときに保存したtabSpecを使用してそれらを再度追加しようとしました。

    public void removeTab(int position) {
      mTabHost.setCurrentTab(0);
      mTabHost.clearAllTabs();

      ArrayList<TabInfo> mNewTabs = new ArrayList<TabInfo>();

      mTabs.remove(position);
      int len = mTabs.size();
      for (int i = 0; i < len; i++) {
          TabInfo info = new TabInfo(mTabs.get(i).tag, mTabs.get(i).clss, mTabs.get(i).args, mTabs.get(i).tabSpec);
          mNewTabs.add(info);
          }
      mTabs.clear();
      mViewPager.removeAllViews();
      mTabHost.getTabWidget().getChildAt(position).setVisibility(View.GONE);
      for (int i = 0; i < len; i++) {
        addTab(mNewTabs.get(i).tabSpec, mNewTabs.get(i).clss, mNewTabs.get(i).args);
      }
      notifyDataSetChanged();
    }

これによりタブが削除されますが、タブがインスタンス化されている場合は、新しいタブを追加すると元のフラグメントが表示されます。

タブを削除して追加したり、タブ内のフラグメントを置き換えたりできるというこの問題を解決するのを誰かが助けてくれますか?

4

0 に答える 0