2015-12-08 3 views
0

У меня есть простой ящик для навигации из студии Android, и я обновляю это. Мой вопрос: как я могу поместить вкладку внутри одного фрагмента?Создать вкладку внутри фрагмента

public class MainFragment extends Fragment { 

    View v; 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     v = inflater.inflate(R.layout.fragment_main,container,false); 
     tabimplement(); 
     return v; 
    } 

    public void tabimplement() 
    { 
    // WHAT CODE WILL I PUT HERE? 
    } 

Заранее благодарен. пожалуйста, научите меня им-новичку здесь

ответ

2

Попробуйте сделать это, чтобы справиться с вкладками:

public class MainFragment extends Fragment { 
    private FragmentTabHost mTabHost; 

    //Mandatory Constructor 
    public MainFragment() { 
    } 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

    } 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_tabs,container, false); 


     mTabHost = (FragmentTabHost)rootView.findViewById(android.R.id.tabhost); 
     mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent); 

     mTabHost.addTab(mTabHost.newTabSpec("fragmentb").setIndicator("Fragment B"), 
       FragmentB.class, null); 
     mTabHost.addTab(mTabHost.newTabSpec("fragmentc").setIndicator("Fragment C"), 
       FragmentC.class, null); 
     mTabHost.addTab(mTabHost.newTabSpec("fragmentd").setIndicator("Fragment D"), 
       FragmentD.class, null); 


     return rootView; 
    } 
} 

с макетом:

<android.support.v4.app.FragmentTabHost 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <FrameLayout 
      android:id="@+id/realtabcontent" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"/> 

    </LinearLayout> 
</android.support.v4.app.FragmentTabHost> 

MotherActivity провести в MainFragment:

public class MotherActivity extends FragmentActivity { 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     MainFragment fragmenttab = new MainFragment(); 
     getSupportFragmentManager().beginTransaction() 
     .add(R.id.item_detail_container, fragmenttab).commit(); 


    } 

И макет материнства:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/item_detail_container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
/> 

После этого просто создайте нормальный фрагмент B и C и т. Д. Класс. Результат будет:

enter image description here

+0

Спасибо Сэр, кстати я получил лучший учебник для этого. https://www.youtube.com/watch?v=yK8RtB6aXC4 ЕСЛИ там кому-то нужна эта вещь –

Смежные вопросы