2016-08-26 3 views
0

Я пытаюсь добавить простой TabLayout на моем приложении, но это не видно, вид пейджера работы тонкойAndroid TabLayout не видно на моем приложении

эта схема toolbar_layout

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/colorPrimary" 
     android:titleTextColor="#ffffff" 
     app:layout_scrollFlags="scroll|enterAlways"> 

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

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

и мой основной макет:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/content_background"> 

    <android.support.v4.widget.DrawerLayout 
     android:id="@+id/drawerLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

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

      <include layout="@layout/application_toolbar"/> 

      <android.support.v4.view.ViewPager 
       android:id="@+id/container" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginLeft="-25dp" 
       android:layout_marginRight="-25dp" 
       /> 
     </LinearLayout> 

     <android.support.design.widget.NavigationView 
      android:id="@+id/navigationView" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      app:headerLayout="@layout/header" 
      app:menu="@menu/drawer"/> 

     <com.lapism.searchview.SearchView 
      android:id="@+id/searchView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:visibility="gone"/> 
    </android.support.v4.widget.DrawerLayout> 
</android.support.design.widget.CoordinatorLayout> 

, как я сказал, вид пейджера отлично работает, но вкладки не видны на моем приложении

ответ

1

TabLayout не должен быть в Toolbar.

Проверить this repository в качестве образца с использованием CoordinatorLayout, DrawerLayout, Toolbar, TabLayout.

Адрес activity_main.xml и include_list_view.xml.

Вид иерархии, как это:

DrawerLayout 
- CoordinatorLayout 
    - AppBarLayout 
    - Toolbar 
    - TabLayout 
    - ViewPager 
- NavigationView 
-1

Я действительно нашел здесь чужой ответ.

Tabs of TabLayout not showing

tabLayout.post(new Runnable() { 
    @Override 
    public void run() { 
     tabLayout.setupWithViewPager(viewPager); 
    } 
}); 

Надеется, что это помогает

+1

Не копируйте ответ от другого StackOverflow вопрос. Скорее, отметьте этот вопрос как дубликат. Или поставьте ссылку StackOverflow как комментарий в вопросе, если это не совсем дубликат. –

0

Попробуйте это:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/fragment_container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      xmlns:tools="http://schemas.android.com/tools" 
      tools:context=".MainActivity"> 
    <android.support.v4.view.ViewPager 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/pager" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" /> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/action_bar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      android:elevation="4dp" 
      android:theme="@style/ThemeOverlay.AppCompat.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 
     <!-- Tabs--> 
     <android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      app:tabMode="fixed" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/colorPrimary" 
      app:tabTextColor="#d3d3d3" 
      android:minHeight="?attr/actionBarSize" 
      /> 
    </android.support.design.widget.AppBarLayout> 

</FrameLayout> 

FrameLayout является основным видом содержание деятельности.

0

Главная Схема

 <?xml version="1.0" encoding="utf-8"?> 
    <android.support.design.widget.CoordinatorLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/content_background"> 

     <android.support.v4.widget.DrawerLayout 
      android:id="@+id/drawerLayout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

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

       <include layout="@layout/application_toolbar"/> 

       <android.support.v4.view.ViewPager 
        android:id="@+id/container" 
        android:layout_width="match_parent" 
<!-- Change this --> 
        android:layout_height="0dp" 
        android:layout_weight="1" 
<!-- Code --> 
        android:layout_marginLeft="-25dp" 
        android:layout_marginRight="-25dp" 
        /> 
      </LinearLayout> 

      <android.support.design.widget.NavigationView 
       android:id="@+id/navigationView" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_gravity="start" 
       app:headerLayout="@layout/header" 
       app:menu="@menu/drawer"/> 

      <com.lapism.searchview.SearchView 
       android:id="@+id/searchView" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:visibility="gone"/> 
     </android.support.v4.widget.DrawerLayout> 
    </android.support.design.widget.CoordinatorLayout> 

android:layout_height из LinearLayout установлен в соответствии с родителем, который скрывает TabLayout. Изменить android:layout_height на 0dp и установить android:layout_weight на 1. Я думаю, это может решить вашу проблему.

1

Это потому, что вы положили TabLayout внутри Toolbar.
Попробуйте изменить ваш toolbar_layout к этому:

<android.support.design.widget.AppBarLayout>  
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/colorPrimary" 
     android:titleTextColor="#ffffff" 
     app:layout_scrollFlags="scroll|enterAlways"> 

    </android.support.v7.widget.Toolbar> 

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

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

Большое спасибо –

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