折叠式工具栏布局总是在显示弹出菜单项的RecyclerView时折叠

6

我将在我的Activity中实现折叠式工具栏布局。我还在这个Activity中创建了RecyclerView。我遇到了一个问题,当我点击弹出菜单项的RecyclerView时,折叠式工具栏总是会折叠。

这是我的XML:

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.ad.kostrad.mp.activity.GambarLokasiActvity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        app:elevation="0dp"
        app:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">


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

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

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


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

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

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

那么如何解决呢?

尝试在工具栏中添加此 app:layout_collapseMode="pin"。 - Sahil Manchanda
是的,我已经设置了这个...但仍然不起作用。 - Amay Diam
2个回答

12

使用

PopupMenu popup = new PopupMenu(activity, v, Gravity.RIGHT);

如果您点击屏幕底部附近的项目,这种方法将不起作用。它仍然会尝试执行向上滚动以适应菜单。

实际上,支持库中似乎存在一个错误。为了完全修复,您现在可以替换:

import android.support.v7.widget.PopupMenu;
import android.widget.PopupMenu;

如同针对类似问题所建议的那样。弹出菜单将按预期工作。


替换导入对我有用,谢谢。这个问题有错误报告吗?如果没有,我认为我们应该创建一个。 - Boris
非常感谢您的修复。我不知道是什么原因导致了这个问题。 - Jtvd78

5
我使用replace来解决这个问题:
PopupMenu popup = new PopupMenu(activity, v);

为了

 PopupMenu popup = new PopupMenu(activity, v, Gravity.RIGHT);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接