2017-03-05 3 views
2

Versteh nicht, warum mein TabLayout nicht in meinem Fragment angezeigt wird Ich bin unter der Support-Version von Fragment, SDK 25, alles funktioniert gut, aber ich kann mein TabLayout nicht sehen, nach der Suche habe ich nicht finde etwas über mein Problem, bitte etwas Hilfe. Hier ist mein Code:TabLayout zeigt kein Android

public class ViewPagerFragment extends Fragment { 

    public static final String KEY_NEW_INDEX = "key_new_index"; 
    private ViewPager mViewPager; 
    private TabLayout mTabLayout; 

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

     final View view = inflater.inflate(R.layout.fragment_view_pager, container, false); 

     final SportFragment sportFragment = new SportFragment(); 
     Bundle bundle = new Bundle(); 
     sportFragment.setArguments(bundle); 

     final BuzzFragment buzzFragment = new BuzzFragment(); 
     bundle = new Bundle(); 
     buzzFragment.setArguments(bundle); 

     mViewPager = (ViewPager) view.findViewById(R.id.viewPager); 
     mTabLayout = (TabLayout) view.findViewById(R.id.tabLayout); 


     mViewPager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) { 
      @Override 
      public Fragment getItem(int position) { 
       return position == 0 ? sportFragment : buzzFragment; 
      } 

      @Override 
      public CharSequence getPageTitle(int position) { 
       return position == 0 ? "Sport" : "Buzz"; 
      } 

      @Override 
      public int getCount() { 
       return 2; 
      } 

     }); 

       mTabLayout.setupWithViewPager(mViewPager); 


     return view; 
    } 
} 

Und das ist meine XML-Datei:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      tools:context="com.example.ideo.testfrag.FragmentUI.Fragments.ViewPagerFragment"> 

    <android.support.design.widget.TabLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/tabLayout" 
     android:background="@color/colorPrimary"/> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</FrameLayout> 
+0

es erhalten, können andere helfen, legen Sie einfach die tabLayout Blick unter die viewPager Ansicht ... ^^ –

+0

versuchen Sie die folgende Antwort, die es funktioniert ... – rafsanahmad007

+0

Bitte verweisen Sie diese http://www.gadgetsaint.com/android/create-viewpager-tabs-android/#.WPuppVN97BI – ASP

Antwort

0

In einer Situation, wo mein MainActivity ein paar Tabs hostet. Ich mache es wie folgt aus:

MainActivity JAVA:

public class MainActivity extends AppCompatActivity { 

TabLayout tabLayout; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 



    int position = 0; 

    tabLayout = (TabLayout) findViewById(R.id.tab_layout); 

    tabLayout.addTab(tabLayout.newTab().setText("HOME")); 
    tabLayout.addTab(tabLayout.newTab().setText("Search")); 
    tabLayout.addTab(tabLayout.newTab().setText("PROFILE")); 
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

    final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 
    final PagerAdapter adapter = new PagerAdapter 
      (getSupportFragmentManager(), tabLayout.getTabCount()); 
    viewPager.setAdapter(adapter); 
    viewPager.setOffscreenPageLimit(2); 
    viewPager.setCurrentItem(position); 
    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 
    tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 

      viewPager.setCurrentItem(tab.getPosition()); 

      if(tab.getPosition() == 0){ 

       InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
       inputMethodManager.hideSoftInputFromWindow(viewPager.getWindowToken(), 0); 

      } 
      else if(tab.getPosition() == 1){ 

       InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
       inputMethodManager.hideSoftInputFromWindow(viewPager.getWindowToken(), 0); 

      } 
      else if(tab.getPosition() == 2){ 

       InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
       inputMethodManager.hideSoftInputFromWindow(viewPager.getWindowToken(), 0); 

      } 

     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     }}); 

    } 
} 

MainActivity XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 
tools:context="celebritytime.com.celeberitytime.MainActivity"> 


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

</FrameLayout> 

<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    android:tag="NationFragmentTag" 
    android:showDividers="none" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:background="#020202" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/tab_layout"/> 

</RelativeLayout> 

Lassen Sie mich wissen, wenn Sie den ViewPager Code benötigen.

0

Sie hinzufügen, nicht Registerkarten in tablayout

nennen dies nach u initialisieren tablayout

//Adding the tabs using addTab() method 
    tabLayout.addTab(tabLayout.newTab().setText("Sport")); 
    tabLayout.addTab(tabLayout.newTab().setText("Buzz"));