2017-08-06 3 views
0

Bonjour, Je crée une application de tabulation, elle fonctionne quand je balaye l'écran, mais je ne vois pas les onglets. Comment puis-je le résoudre? Pouvez-vous m'aider. MerciImpossible de voir les onglets de l'onglet Balayage

Voici mon XML mise en page

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.hakobm.tabdemo.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <include 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      layout="@layout/toolbar_layout"/> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.design.widget.TabLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/tablayout" 
     app:tabMode="fixed" 
     app:tabGravity="fill" 
     /> 


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

    </android.support.v4.view.ViewPager> 

</RelativeLayout> 

Voici mon fichier MainActivity

public class MainActivity extends AppCompatActivity { 

    Toolbar toolbar; 
    TabLayout tabLayout; 
    ViewPager viewPager; 
    ViewPagerAdapter viewPagerAdapter; 

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


     toolbar= (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     tabLayout= (TabLayout) findViewById(R.id.tablayout); 
     viewPager= (ViewPager) findViewById(R.id.viewpager); 


     viewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager()); 
     viewPagerAdapter.addFragments(new Home(),"Home"); 
     viewPagerAdapter.addFragments(new Top(),"Top"); 
     viewPagerAdapter.addFragments(new Buttom(),"Buttom"); 
     viewPager.setAdapter(viewPagerAdapter); 
     tabLayout.setupWithViewPager(viewPager); 
     tabLayout.setTabsFromPagerAdapter(viewPagerAdapter); 

     viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 

    } 
} 

Et voici ma adaptateurs partie:

public class ViewPagerAdapter extends FragmentStatePagerAdapter { 

    private ArrayList<Fragment> fragments= new ArrayList<>(); 
    private ArrayList<String> tabTitles = new ArrayList<>(); 

    public void addFragments(Fragment fragments, String titles){ 

     this.fragments.add(fragments); 
     this.tabTitles.add(titles); 

    } 

    public ViewPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return fragments.get(position); 
    } 

    @Override 
    public int getCount() { 
     return fragments.size(); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return tabTitles.get(position); 
     // return "Tab" + position; 
    } 
} 

je ne peux pas voir le raison pour laquelle mes onglets ne sont pas disponibles. Je ajouté la compilation 'com.android.support:design:25.3.1' dans mon fichier grandle.app

Répondre

1

Essayez ceci:

Ajouter un identifiant à l'appbarlayout comme ceci:

android:id="@+id/appbar" 

Et ajoutez ceci aux onglets :

android:layout_below="@+id/appbar" 
+0

grâce, il aide –