Содержимое Android перемещается вверх при скрытии панели действий - PullRequest
0 голосов
/ 19 декабря 2018

Мое приложение имеет панель инструментов в AppBarLayout, которая исчезает при прокрутке с использованием тега app:layout_scrollFlags="scroll|enterAlways".Когда я заменяю текущий фрагмент на тот, который не нуждается (или не должен иметь) панель инструментов, возникает следующая проблема.

Я использую ((AppCompatActivity) getActivity()).getSupportActionBar().hide();, чтобы скрыть панель действий в этом фрагменте.Если ActionBar был виден в предыдущем фрагменте, все работает, как ожидалось.Однако, если ActionBar был не видимым в предыдущем фрагменте из-за конфигурации scroll|enterAlways, содержимое следующего фрагмента, скрывающего панель действий, перемещается вверх за строкой состояния.Следующие изображения должны показать, что я имею в виду:

Вот как это должно выглядеть.Происходит, когда панель действий не была видна в предыдущем фрагменте.This is how it should look like. Occurs when the ActionBar was not visible in the previous Fragment.

Вот как это выглядит, если панель действий ранее была невидимой.This is how it looks, if the ActionBar was previously invisible.

Для справки, вот так выглядит мой Activity.xml:

<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/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:background="@color/white"
tools:context="com.example.app.MainActivity">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:elevation="0dp"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/white"
        app:contentInsetLeft="15dp"
        app:contentInsetStart="15dp"
        app:contentInsetEnd="25dp"
        app:contentInsetRight="25dp"
        app:titleTextAppearance="@style/Toolbar.TitleText"
        app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>

<FrameLayout
    android:id="@+id/currentFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="0dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"

    >
</FrameLayout>

и вот как фрагмент.XML выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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:app="http://schemas.android.com/apk/res-auto"
tools:context=".fragments.ModuleDetailFragment">

<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <ImageView
        android:id="@+id/moduleImageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:maxHeight="250dp"
        android:adjustViewBounds="true"
        />
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...