Не могу увидеть tablayout с viewpager

это мой код для связи tablayout с viewpager, он работал нормально, но теперь он не работает, я не могу увидеть макет вкладок на своем устройстве, может ли кто-нибудь сказать, что вызывает эту проблему, я думаю, что мой код правильный

<android.support.design.widget.CoordinatorLayout 
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:id="@+id/arootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.blipclap.creativegraphy.HomeActivity"
tools:showIn="@layout/app_bar_home">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white">

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

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_below="@+id/tabLayout"> 
</android.support.v4.view.ViewPager>

</RelativeLayout>

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_gravity="bottom"
        app:layout_behavior=".Helper.BottomNavigationBehaviour"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        app:itemIconTint="@android:color/background_dark"
        app:itemTextColor="@android:color/background_dark"
        app:menu="@menu/bottom_navigation_menu"> 
</android.support.design.widget.BottomNavigationView>


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

здесь у меня может быть адаптер

public class MyFragmentAdapter extends FragmentPagerAdapter {

    private Context context;

    public MyFragmentAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }

    @Override
    public Fragment getItem(int position) {
        if (position == 0)
            return CategoryFragment.getInstance();
        else if (position == 1)
            return TrendingFragment.getInstance();
        else if (position == 2)
            return RecentsFragment.getInstance(context);
        else
            return null;
    }

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

    @Override
    public CharSequence getPageTitle(int position) {
        switch (position) {
            case 0:
                return "Category";
            case 1:
                return "Trending";
            case 2:
                return "Recents";
        }
        return "";
    }}

это код активности, который я использовал

 viewPager = (ViewPager)findViewById(R.id.viewPager);
            MyFragmentAdapter adapter = new 
 MyFragmentAdapter(getSupportFragmentManager(), this);
            viewPager.setAdapter(adapter);

            tabLayout = (TabLayout) findViewById(R.id.tabLayout);
            tabLayout.setupWithViewPager(viewPager);

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

мой макет использует поведение нижней навигации, поэтому координатный макет необходимая и нижняя навигация должна быть отключена, если она должна быть дочерней компоновкой координатора

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

<android.support.constraint.ConstraintLayout 
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.blipclap.creativegraphy.HomeActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        app:theme="@style/ToolbarColoredBackArrow" />

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

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


</android.support.constraint.ConstraintLayout>

person vinit    schedule 27.05.2018    source источник
comment
Попробуйте убрать TabLayout из RelativeLayout, а лучше удалить RelativeLayout и поставить LinearLayout вместо CoordinatorLayout   -  person Suleyman    schedule 27.05.2018
comment
не сработало, я пробовал оба   -  person vinit    schedule 27.05.2018
comment
не работает, я не могу изменить координатора, вы можете видеть, что я использую вспомогательный класс, но я изменил относительный макет, он говорит, что linearlayout не является допустимым макетом   -  person vinit    schedule 27.05.2018
comment
я отредактировал вопрос, вы можете видеть, что мой макет включен в app_bar_layout, могу ли я использовать android:layout_below=@+id/   -  person vinit    schedule 27.05.2018
comment
Я не думаю, что вы можете использовать android:layout_below, потому что это ConstraintLayout, вам нужно изменить свои ограничения или просто попробовать заменить CoordinatorLayout на LinearLayout   -  person Suleyman    schedule 27.05.2018
comment
я решил проблему, я видел макет вкладки, поэтому я просто добавил android:layout_marginTop=?attr/actionBarSize работал для меня   -  person vinit    schedule 28.05.2018
comment
Идеальный! Рад, что вы решили проблему :)   -  person Suleyman    schedule 28.05.2018


Ответы (3)


попробуй это тебе поможет

<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/arootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.TabLayout
        android:id="@+id/tab_host"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_red_light"> 
   </android.support.design.widget.TabLayout>
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/tab_host"
        android:layout_above="@id/design_navigation_view"> 
   </android.support.v4.view.ViewPager>
    <android.support.design.widget.BottomNavigationView
        android:id="@+id/design_navigation_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@android:color/darker_gray"> 
   </android.support.design.widget.BottomNavigationView>
    </RelativeLayout>

person VIKAS SHARMA    schedule 27.05.2018
comment
я отредактировал вопрос, вы можете видеть, что мой макет включен в app_bar_layout, могу ли я использовать android:layout_below=@+id/ - person vinit; 27.05.2018

решение для этого

     <android.support.design.widget.TabLayout
            android:id="@+id/tabLayout"
android:layout_marginTop="?attr/actionBarSize"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

макет вкладки фактически находился под панелью приложений, поэтому я просто

person vinit    schedule 27.05.2018

person    schedule
comment
не работает, я не могу изменить координатора, вы можете видеть, что я использую вспомогательный класс, но я изменил относительный макет, он говорит, что недействительный макет - person vinit; 27.05.2018
comment
Какой вспомогательный класс вы можете изменить по своему усмотрению. Если вспомогательный класс был связан с этим вопросом, то вы должны были опубликовать его вместе с вопросом. - person Khemraj Sharma; 27.05.2018
comment
поведение нижней навигации это работает только для макета координатора - person vinit; 27.05.2018
comment
Хорошо, вы используете поведение нижней навигации, подождите, я отредактирую свой ответ для вашего решения. - person Khemraj Sharma; 27.05.2018
comment
я отредактировал вопрос, вы можете видеть, что мой макет включен в app_bar_layout, могу ли я использовать android:layout_below=@+id/ - person vinit; 27.05.2018