2017-09-26 4 views
1

J'ai un FloatingButton ancré à une vue dans CoordinatorLayout, tout va bien, mais si je verrouille l'écran et le déverrouille, le FloatinButton perd sa propriété ancrée et reste flottant au fond pendant un moment.Comment garder le bouton d'action flottant ancré à ma vue après avoir déverrouillé l'écran de verrouillage?

code source:

<?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.example.user.myapplication.ScrollingActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/app_bar_height" 
     android:fitsSystemWindows="true" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

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

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/AppTheme.PopupOverlay" /> 

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

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

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|end" 
     app:srcCompat="@android:drawable/ic_dialog_email" /> 

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

Comme vous pouvez le voir, floatingButton est ancré à app_bar vue:

enter image description here

Mais, si l'écran est verrouillé et déverrouillé en arrière avec cette activité en cours d'exécution, Je l'ai pour quelques secondes:

enter image description here

Ce problème se produit sur Android 4.2 et supérieur,

Une idée?

Répondre

1

J'ai finalement trouvé une solution, il suffit de définir la visibilité de FloatingActionButton sur GONE dans la méthode onPause() de l'activité et de définir sa visibilité sur VISIBLE dans la méthode onResume() de l'activité. FloatingActionButton récupérer ses propriétés ancrées quand est montré à nouveau,

code source:

@Override 
    protected void onResume() { 
     fab.setVisibility(View.VISIBLE); 
     super.onResume(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     fab.setVisibility(View.GONE); 
    } 

Thats tous,

aide tout le monde espère que cela cette question bizarre.