Неправильная прокрутка на сворачивающейся панели инструментов, когда я щелкаю меню параметров - PullRequest
0 голосов
/ 18 мая 2019

Я создал страницу профиля с макетом координатора в качестве корневого элемента и сворачивающейся панели инструментов, а его внутреннее изображение отображается в виде изображения профиля.Первый вид приложения показывает только информацию, и до сих пор все в порядке! Даже меню опций прекрасно работает, когда сворачиваемая панель инструментов полностью свернута или развернута. Но проблема возникает, когда сворачивающаяся панель инструментов немного свернута или немного расширена!Произошли некоторые странные вещи, которые вы можете увидеть на скриншотах!

Когда щелкнули меню опций, некоторые виды стали видимыми, а некоторые повернули, и само меню опций заменяется другим пунктом меню, который отменит последние изменения в представлениях.Оба пункта меню параметров имеют вышеуказанную проблему!

before options menu clicked

after options menu clicked

after options menu clicked

myprofile.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:fab="http://schemas.android.com/apk/res-auto"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mp_coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:background="@color/semi_white"
android:fitsSystemWindows="true"
tools:context=".MyProfile">


<android.support.design.widget.AppBarLayout
    android:id="@+id/mp_app_bar"
    android:layout_width="match_parent"
    android:layout_height="256dp"
    android:elevation="4dp"
    android:fitsSystemWindows="true"
    app:theme="@style/ThemeOverlay.AppCompat.Light">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/mp_collapsing"

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        app:contentScrim="@color/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:theme="@style/ThemeOverlay.AppCompat.Dark">


        <ImageView
            android:src="@drawable/user_default"
            android:id="@+id/mp_iv_profile"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/mp_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?android:attr/actionBarSize"
            app:layout_collapseMode="pin"
            android:fitsSystemWindows="false"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <TextView
            style="@style/ToolbarsTv"
            android:id="@+id/mp_tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="16dp"
            app:layout_collapseMode="pin" />


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


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


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

на выбранный элемент параметров

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    switch (id) {

        case android.R.id.home:
            onBackPressed();
            break;
        case R.id.mp_options_menu_edit:
            mp_btn_save.setVisibility(View.VISIBLE);
            item_edit.setVisible(false);
            item_cancel.setVisible(true);

            onEdit();
            break;
        case R.id.mp_options_menu_cancel:
            mp_btn_save.setVisibility(View.GONE);
            item_edit.setVisible(true);
            item_cancel.setVisible(false);
            onCancelEdit();

            break;
    }
    return super.onOptionsItemSelected(item);
}

1 Ответ

0 голосов
/ 20 мая 2019

проблема заключалась в использовании двух вещей в одном макете, один был атрибутом макета координатора android:animateLayoutChanges="true", а другой - атрибутом вида app:layout_behavior="@string/bottom_sheet_behavior"

...