0

Кажется, что этот вопрос задавали много раз раньше. По крайней мере, я нашел много в Интернете и, в частности, в частности. Но ни один из ответов не помог, не знаю почему.Viewpager и панель навигации сверху

Я создал простой проект с вкладками в Android Studio 2.2.2 Ничего не трогал его, кроме одного добавления - добавление изображения. Вот раскладка деятельность, которая была сгенерирована:

<?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/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.company.me.navbartest.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="@dimen/appbar_padding_top" 
     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:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

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

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

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

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

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:layout_margin="@dimen/fab_margin" 
     app:srcCompat="@android:drawable/ic_dialog_email" /> 

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

Не изменилось ничего здесь. А вот макет фрагмента:

<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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.company.me.navbartest.MainActivity$PlaceholderFragment"> 

    <TextView 
     android:id="@+id/section_label" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <ImageView 
     android:layout_alignParentBottom="true" 
     android:src="@mipmap/ic_launcher" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</RelativeLayout> 

Единственное дополнение здесь является ImageView в нижней части фрагмента. Не касался кода вообще. Не знаю, если это необходимо, но только в том случае, если это здесь: http://pastebin.com/FuUiGpyH

Вот результат: Navbar troubles

Это было принято на KitKat, но это же на Зефир. Посмотрите на маленькие зеленые уши? Это из ImageView, который я добавил. Это значок логотипа Android.

Я пробовал разные комбинации флагов «fitsSystemWindows». Нет успеха. Я думаю, я просто не совсем понимаю, как это работает и должно использоваться.

Также попытался изменить корневой объект фрагмента - те же результаты.

Итак, главный вопрос - как это исправить? Как убедиться, что этот ImageView показан там, где он должен был?

В Gradle спецификации:

minSdkVersion 19 
targetSdkVersion 25 
compileSdkVersion 25 
buildToolsVersion "25.0.0" 
compile 'com.android.support:appcompat-v7:25.0.0' 
compile 'com.android.support:design:25.0.0' 
+0

попробуйте использовать 'adjustViewBounds =" true "' и 'scaleType =" fitXY "' –

+0

Вы можете добавить нижнее поле в свое изображение. –

+0

Это не решит настоящую проблему. Я имею в виду, что ImageView - это всего лишь пример того, как выглядит любой элемент управления в этом случае. Изображение, что вместо него есть EditText. Или другая группа просмотра. –

ответ

1

Похоже, я нашел решение.

«Проблема» была в флажках прокрутки панели инструментов. Я предполагаю, что шаблон должен был быть использован со списком и конкретной прокруткой (тот, где свернута панель инструментов), и поэтому флаги были

scroll | enterAlways 

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

Другим «обходным решением» является окружение AppBarLayout в LinearLayout. Также помогает, но не знает о побочных эффектах. Не проверял это много.

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