2017-09-26 3 views
1

Ich habe eine FloatingButton in einer Ansicht in CoordinatorLayout verankert, alles in Ordnung, aber wenn ich den Bildschirm sperren und entsperren zurück, verliert der FloatinButton seine verankerte Eigenschaft und bleiben für eine Weile am Boden schwebend.Wie halte ich den frei beweglichen Aktions-Button in meiner Ansicht verankert, nachdem ich den Sperrbildschirm entsperrt habe?

Quellcode:

<?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> 

Wie Sie sehen können, ist floatingButton verankert Blick auf app_bar:

enter image description here

Aber, wenn der Bildschirm gesperrt ist und mit dieser Tätigkeit ausgeführt wird entriegelt zurück, Ich habe das für ein paar Sekunden:

enter image description here

Dieses Problem tritt auf Android 4.2 und höher,

Eine Idee?

Antwort

1

Ich habe schließlich eine Lösung gefunden, einfach die FloatingActionButton-Sichtbarkeit auf GONE in der onPause() -Methode der Aktivität zu setzen und dann ihre Sichtbarkeit auf VISIBLE in der onResume() -Methode der Aktivität einzustellen, funktioniert gut für diesen Fall FloatingActionButton seine verankerten Eigenschaften wiederherzustellen, wenn wieder gezeigt wird,

Quellcode:

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

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

das ist alles,

Hoffe, dass es jeder mit diesem seltsamen Problem hilft.

Verwandte Themen