2012-03-02 10 views
8

フラグメント内にタブホストを追加しようとしていますが、何を挿入しようとしても問題ありません。私はここにいくつかの基礎を欠いているかもしれません。私のクラスTabFragmentのコードはここにあります。ビューを返します。 APIレベル17でフラグメント内にタブホストを追加する方法

public class TabFragment extends Fragment{ 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
    } 
    private TabHost mTabHost; 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) 
    { 
      View view = inflater.inflate(R.layout.tabmain, container, false); 
      mTabHost = (TabHost) view.findViewById(android.R.id.tabhost); 
      mTabHost.setup();//very important to call this 
      TabHost.TabSpec tab = mTabHost.newTabSpec("my tab content"); 
      tab.setIndicator("my tab content"); 
      mTabHost.addTab(tab); 
     return view; 
    } 
} 
+1

http://android.codeandmagic.org/2011/07/android-tabs-with-fragments/このリンクは役立つかもしれません – Triode

+0

それはありません。彼らはタブを作成するためにフラグメントを使用していますし、私のrequirememntに加えて私のフラグメントの1つは静的でなければなりません。私はjusに何とかタブボードを挿入する必要があります – sohil

+0

あなたは解決されました..同じことにこだわってしまったのですか..あなたが助けてくれますか?ここでチェックしてくださいhttp://stackoverflow.com/questions/28106944/how-to-add-tabhost-ナビゲーション付きドロワー?noredirect = 1#comment44592501_28106944? –

答えて

18

、これが可能になりました:私は、を介してダウンロードするとき、それは私のために自動更新をdidntのよう

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentTabHost; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

// This class is the 3rd fragment in my ViewPager, 
// to which I wanted to add 2 tabs.... 
public class TabHostParentFragment extends Fragment { 
private FragmentTabHost mTabHost; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
mTabHost = new FragmentTabHost(getActivity()); 
mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.my_parent_fragment); 

Bundle arg1 = new Bundle(); 
arg1.putInt("Arg for Frag1", 1); 
mTabHost.addTab(mTabHost.newTabSpec("Tab1").setIndicator("Frag Tab1"), 
    MyNestedFragment1.class, arg1); 

Bundle arg2 = new Bundle(); 
arg2.putInt("Arg for Frag2", 2); 
mTabHost.addTab(mTabHost.newTabSpec("Tab2").setIndicator("Frag Tab2"), 
    MyNestedFragment2.class, arg2); 

return mTabHost; 
} 

@Override 
public void onDestroyView() { 
super.onDestroyView(); 
mTabHost = null; 
} 
} 

は、あなたがあなたのアンドロイド・サポート・v4.jarファイルを更新していることを確認しますSDKマネージャこれにより、getChildFragmentManger()関数が定義されなくなります。

+1

おかげで仲間の仲間! –

+0

これはまた、最新のandroid-support-v4ライブラリを使用して私の仕事をしています。 – kdroider

+0

あなたはsupport.vxライブラリを使用せずにこれを行う方法はありますか – samira

関連する問題