2012-03-02 10 views
8

estoy tratando de agregar tabhost dentro de un fragmento, pero no importa lo que intento, no puedo insertarlo. Me pueden estar perdiendo algunos fundamentos aquí. Aquí está el código de mi clase TabFragment. Lo cual devuelve una vista.cómo agregar tabhost en fragmentos

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/ Este enlace puede ser útil – Triode

+0

no, no lo hace. están usando fragmentos para hacer pestañas y no es mi requerimiento más uno de mi fragmento tiene que b estático. Necesito insertar el tabhost de alguna manera – sohil

+0

@sohil te solucionó ... estoy atrapado en el mismo ... puedes ayudar ... revisa aquí http://stackoverflow.com/questions/28106944/how-to-add-tabhost- with-navigation-drawer? noredirect = 1 # comment44592501_28106944? –

Respuesta

18

Con el nivel de API 17, esto es ahora posible:

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

asegúrese de actualizar su archivo android-apoyo-v4.jar, ya que didnt de actualización automática para mí cuando he descargado a través de la Administrador de SDK Esto evita que se defina la función getChildFragmentManger().

+1

¡Gracias, amigo! –

+0

Esto también funciona para mí usando la última biblioteca android-support-v4. – kdroider

+0

muchas gracias – samira

Cuestiones relacionadas