当我点击“选项”菜单时,java错误地在折叠工具栏上滚动
我创建了一个配置文件页面,其中coordinator布局作为根元素,折叠工具栏,其内部图像视图作为配置文件图片。应用程序的第一个视图只显示信息,到目前为止一切正常!当折叠工具栏完全折叠或展开时,即使是“选项”菜单也非常有效。但当折叠工具栏稍微折叠或稍微展开时,问题就会出现!发生了一些奇怪的事情,你可以在截图中看到
当“选项”菜单单击时,一些视图变为可见,一些视图变为不可见,而“选项”菜单本身将替换为另一个菜单项,该菜单项将取消视图中最近的更改。选项菜单的两项都有上述问题
我的个人资料。xml
<安卓.support.design.widget.CoordinatorLayout
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:fab="http://schemas.安卓.com/apk/res-auto"
xmlns:fresco="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:id="@+id/mp_coordinator"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:animateLayoutChanges="true"
安卓:background="@color/semi_white"
安卓:fitsSystemWindows="true"
tools:context=".MyProfile">
<安卓.support.design.widget.AppBarLayout
安卓:id="@+id/mp_app_bar"
安卓:layout_width="match_parent"
安卓:layout_height="256dp"
安卓:elevation="4dp"
安卓:fitsSystemWindows="true"
app:theme="@style/ThemeOverlay.AppCompat.Light">
<安卓.support.design.widget.CollapsingToolbarLayout
安卓:id="@+id/mp_collapsing"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:fitsSystemWindows="true"
app:contentScrim="@color/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:theme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
安卓:src="@drawable/user_default"
安卓:id="@+id/mp_iv_profile"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:scaleType="centerCrop"
app:layout_collapseMode="parallax" />
<安卓.support.v7.widget.Toolbar
安卓:id="@+id/mp_toolbar"
安卓:layout_width="match_parent"
安卓:layout_height="?安卓:attr/actionBarSize"
app:layout_collapseMode="pin"
安卓:fitsSystemWindows="false"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<TextView
style="@style/ToolbarsTv"
安卓:id="@+id/mp_tv_title"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:layout_gravity="center_horizontal"
安卓:layout_marginTop="16dp"
app:layout_collapseMode="pin" />
</安卓.support.design.widget.CollapsingToolbarLayout>
</安卓.support.design.widget.AppBarLayout>
<include layout="@layout/content_scrolling"/>
在所选项目的选项上
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case 安卓.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 楼答案
问题是在一个布局中使用了两个东西,一个是协调器布局属性
android:animateLayoutChanges="true"
,另一个是视图属性app:layout_behavior="@string/bottom_sheet_behavior"