2

У меня есть координаторLayout с AppbarLayout, который включает в себя панель инструментов и TabLayout и включает ViewPager, показывающий 3 фрагмента, которые включают RecyclerView CardView.Панель инструментов прокручивается, когда PopupMenu показывает

Проблема заключается в том, что при нажатии на ImageView (3 точки) на CardView отображается PopupMenu, но панель инструментов прокручивается вверх.

this is the design with toolbar showing

the issue when clicking then toolbar disappears

Это мой контейнер активность 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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:id="@+id/coordinatorLayout"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <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/ThemeOverlay.AppCompat.Light" /> 

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

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     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/floatingButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@drawable/ic_add" /> 

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

Это вид карты XML-файл

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.CardView 
     android:id="@+id/card_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:layout_margin="3dp" 
     card_view:cardBackgroundColor="@color/cardview_light_background"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal"> 

      <ImageView 
       android:id="@+id/thumbnail" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_margin="5dp" 
       android:layout_weight="1.5" 
       android:scaleType="fitCenter" /> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="5" 
       android:layout_margin="5dp" 
       android:orientation="vertical"> 

       <TextView 
        android:id="@+id/time_at" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textColor="#616161" 
        android:textSize="20sp" /> 

       <TextView 
        android:id="@+id/alarm_title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textColor="#616161" 
        android:textSize="15sp"/> 

       <TextView 
        android:id="@+id/alarm_message" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textColor="#616161" 
        android:textSize="15sp"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:layout_margin="5dp" 
       android:orientation="vertical"> 

       <TextView 
        android:id="@+id/remaining_time" 
        android:layout_width="wrap_content" 
        android:layout_height="0dp" 
        android:layout_weight="2" 
        android:textSize="12sp" 
        android:textColor="#03A9F4"/> 

       <ImageView 
        android:id="@+id/overFlow" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="bottom|end" 
        android:src="@drawable/ic_more_vert"/> 

      </LinearLayout> 

     </LinearLayout> 

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

</LinearLayout> 

И это фрагмент XML

<LinearLayout 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" 
    tools:context=".TodayFragment"> 

    <RelativeLayout 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:background="#EEEEEE" 
     tools:context=".TodayFragment"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recycler_view_today" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:clipToPadding="false" 
      android:scrollbars="vertical" /> 

    </RelativeLayout> 

</LinearLayout> 
+0

Вы попробовали ответ –

ответ

3

У нас та же проблема. глядя на это сообщение:

https://code.google.com/p/android/issues/detail?id=211014

кажется, что поведение нормально, но в вашем случае (как и мы), вы не хотите, чтобы это случилось.

Если вы прочтете все сообщение, вы увидите, что участники проекта работают над методом «отключить» родительскую прокрутку с помощью popupmenu. Возможно, в будущем он будет доступен в библиотеках поддержки.

Мы должны ждать этого ...

1

Я использовал "импорт android.widget.PopupMenu;" вместо этого "import android.support.v7.widget.PopupMenu;" Эта библиотека имеет тот же интерфейс для PopupMenu, но не имеет проблем с прокруткой панели инструментов.

7

заменить

PopupMenu popupMenu = new PopupMenu(MainActivity.this,view); 

в

PopupMenu popupMenu = new PopupMenu(MainActivity.this,view, Gravity.RIGHT); 

поможет.

0

используйте

импорт android.widget.PopupMenu;

вместо

импортных android.support.v7.widget.PopupMenu;

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