4

Ich versuche, einige Details von meiner Filmseite zu erhalten, um die Symbolleiste zu überlappen, aber mehrere Eckfälle verursachen, dass der überlagerte Inhalt unter der Mitte der Symbolleiste liegt. Der letzte Fall, der dies verursacht, zeigt eine Snackbar. Jede Information wäre hilfreich, weil das overlapTop-Verhalten bisher sehr fehlerhaft und mühsam war.Seltsames Verhalten beim Koordinatorlayout und Minimieren der Symbolleiste mit überlappendem Inhalt

Bearbeiten: Ich verwende auch appBarLayout.setExpanded, um es jedes Mal zu erweitern, wenn ich einen neuen Film laden. Nicht sicher, ob das wichtig ist.

enter image description here

enter image description here

Startseite Layout:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    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:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".ui.home.HomeActivity"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/coordinator" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/appBar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:fitsSystemWindows="true"> 

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

       <ImageView 
        android:id="@+id/backdrop" 
        android:layout_width="match_parent" 
        android:layout_height="200dp" 
        android:alpha="0.5" 
        android:contentDescription="@string/backdrop" 
        android:scaleType="centerCrop" 
        android:fitsSystemWindows="true" 
        app:layout_collapseMode="parallax" /> 

       <android.support.v7.widget.Toolbar 
        android:id="@+id/toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize" 
        app:layout_collapseMode="pin"/> 
      </android.support.design.widget.CollapsingToolbarLayout> 
     </android.support.design.widget.AppBarLayout> 

     <FrameLayout 
      android:id="@+id/frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:clipToPadding="false" 
      app:layout_behavior="@string/scrolling_view" 
      app:behavior_overlapTop="80dp" 
      /> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="16dp" 
      android:src="@drawable/ic_dice_three_48dp" 
      app:layout_anchor="@+id/frame" 
      app:layout_anchorGravity="bottom|end" 
      /> 
    </android.support.design.widget.CoordinatorLayout> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:menu="@menu/menu_home_nav"/> 
</android.support.v4.widget.DrawerLayout> 

Movie-Layout:

<android.support.v4.widget.NestedScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/nested_scroll_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:overScrollMode="never" 
    tools:targetApi="lollipop" 
    tools:ignore="RtlSymmetry"> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <RelativeLayout 
      android:id="@+id/content" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingTop="16dp" 
      android:visibility="visible"> 

      <ImageView 
       android:id="@+id/poster" 
       android:layout_width="98dp" 
       android:layout_height="140dp" 
       android:layout_marginStart="16dp" 
       android:layout_marginEnd="16dp" 
       android:contentDescription="@string/poster" 
       tools:background="@color/md_white_1000" 
       /> 

      <TextView 
       android:id="@+id/title" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_toEndOf="@+id/poster" 
       android:layout_above="@+id/phrase" 
       android:layout_marginStart="16dp" 
       android:layout_marginEnd="16dp" 
       android:gravity="bottom" 
       android:textColor="?attr/titleTextColor" 
       android:textSize="24sp" 
       android:textStyle="bold" 
       android:fontFamily="sans-serif-condensed" 
       tools:text="Title"/> 

      <TextView 
       android:id="@+id/phrase" 
       android:layout_width="match_parent" 
       android:layout_height="80dp" 
       android:layout_marginStart="16dp" 
       android:layout_marginEnd="16dp" 
       android:layout_toEndOf="@+id/poster" 
       android:layout_alignBottom="@+id/poster" 
       android:paddingTop="16dp" 
       android:gravity="top" 
       android:textSize="18sp" 
       android:textStyle="italic|bold" 
       android:fontFamily="sans-serif-condensed" 
       tools:text="Good vs Evil" /> 

      <FrameLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="140dp"> 

       <include layout="@layout/card_movie" /> 
      </FrameLayout> 

     </RelativeLayout> 

     <android.support.v4.widget.ContentLoadingProgressBar 
      android:id="@+id/loading" 
      style="?android:progressBarStyle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:progressBackgroundTint="@color/md_white_1000" 
      android:padding="32dp" 
      android:visibility="invisible" 
      tools:targetApi="lollipop" /> 

     <RelativeLayout 
      android:id="@+id/error" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:visibility="invisible"> 

      <TextView 
       android:id="@+id/error_message" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:padding="32dp" 
       /> 

      <Button 
       android:id="@+id/error_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/error_message" 
       android:layout_centerHorizontal="true" 
       android:text="@string/recycle"/> 
     </RelativeLayout> 

    </FrameLayout> 

</android.support.v4.widget.NestedScrollView> 
+0

Post Ihren Layout-Dateicode – user3215142

+0

Mit dem XML aktualisiert – Joe

Antwort

2

Obwohl Sie Lösung von Ihrem eigenen bekam das ist toll, aber wenn Sie etwas mehr Wissen und wollen etwas mehr über diese Themen wissen, was passieren könnte und warum diese Probleme mit Coordinator Layouts geschieht vollständig in diesem Blog-Eintrag here beschrieben Ich fand es ziemlich nützlich, also empfehle ich Ihnen, es zu lesen.

4

es gelöst. Ich stellte meine zwei anderen Ansichten, Laden und Fehler, auf View.INVISIBLE ein, wann immer ich den Inhalt zeigte. Wenn Sie sie auf View.GONE setzen, wurde sie behoben.

Verwandte Themen