2016-10-22 2 views
0

У меня есть эта проблема: часть моих фрагментов в ViewPager покрыта AppBarLayout в макете контейнера. В следующем примере мой текст скрыт под вкладками.Часть фрагмента покрыта AppBarLayout

sample image

Контейнер:

<?xml version="1.0" encoding="utf-8"?> 
<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:id="@+id/content_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="pl.webtube.pracainzynierska.MainActivity" 
tools:showIn="@layout/app_bar_main"> 

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


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

<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_alignParentTop="true" /> 

</RelativeLayout> 

Фрагмент:

<RelativeLayout 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" 
xmlns:custom="http://schemas.android.com/apk/res-auto" 

tools:context="pl.webtube.pracainzynierska.OneFragment"> 



<TextView 
    android:layout_below="@id/appBarLayout" 
    android:text="Sample text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="25dp" 
    android:id="@+id/textView5" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

Здесь я заселить фрагменты внутри ViewPager:

private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new OneFragment(), "ONE"); 
    adapter.addFragment(new TwoFragment(), "TWO"); 
    adapter.addFragment(new ThreeFragment(), "ONE"); 
    viewPager.setAdapter(adapter); 
} 

Я пробовал android:layout_below с AppBarLayout, но это не имеет значения.

Что, черт возьми, происходит?

ответ

1

использование линейной компоновки вместо ...

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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/content_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="pl.webtube.pracainzynierska.MainActivity" 
tools:showIn="@layout/app_bar_main"> 

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


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

<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_alignParentTop="true" /> 

</LinearLayout > 
+0

спасибо! Прекрасно работает – AndroidBegginer

0

изменить код из

<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_alignParentTop="true" /> 

к этому ... добавить андроид: layout_below = "@ + идентификатор/appBarLayout" эта линия в вашем теге ViewPager

<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_alignParentTop="true" 
    android:layout_below="@+id/appBarLayout"/> 
Смежные вопросы