11

Ich versuche, CollapsingToolbarLayout mit einer NestedScrollView zu implementieren, und es zeigt die TextView in der NestedScrollView am unteren Rand und nicht zulassen, Scrollen oder Minimieren der Symbolleiste. Ich habe dies mit einem RecyclerView, aber nicht mit NestedScrollView arbeiten lassen. Wenn ich app:layout_behavior="@string/appbar_scrolling_view_behavior entferne, klappt die Toolbar zusammen, aber die NestedScrollView liegt nicht unter dem AppBarLayout. Irgendwelche Lösungen oder Vorschläge, um das zu beheben?CollapsingToolbarLayout und NestedScrollView funktioniert nicht

XML

<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.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

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

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="center" 
       android:text="Hello" 
       android:textColor="#000" 
       android:textSize="16sp"/> 
     </LinearLayout> 
    </android.support.v4.widget.NestedScrollView> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

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

      <ImageView 
       android:id="@+id/backdrop" 
       android:layout_width="match_parent" 
       android:layout_height="134dp" 
       android:background="@color/primary" 
       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> 
</android.support.design.widget.CoordinatorLayout> 

Ergebnis

enter image description here

+0

Fügen Sie 'android: fitsSystemWindows =" true "' in CoordinatorLayout und NestedScrollView hinzu. Als Nächstes verschieben Sie die NestedScrollview über das AppBarLayout. – Psypher

+0

@ ɥʇᴉɾuɐɹ Habe gerade meine Antwort mit dem, was du verlangst, aktualisiert. Immer noch das gleiche Ergebnis. –

+0

@ ɥʇᴉɾuɐɹ Wenn Sie ein einfaches Arbeitsbeispiel dafür haben, posten Sie es und ich werde es testen. –

Antwort

0

Ich hatte das gleiche Problem und die Art der schnelle Lösung für das schrieb. Angenommen, dass Ihr LinearLayout mit „Hallo“ Label mContainer gebunden ist und Ihr Toolbar ist verpflichtet, mToolbar können Sie verwenden:

private void fixNestedScrollViewScrolling() { 
    final int bottomMargin = getScreenHeight() - mContainer.getHeight() - mToolbar.getHeight(); 
    final FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
      mContainer.getLayoutParams()); 
    layoutParams.setMargins(0, 0, 0, bottomMargin); 
    mContainer.setLayoutParams(layoutParams); 
} 

private int getScreenHeight() { 
    final Display display = getWindowManager().getDefaultDisplay(); 
    final Point size = new Point(); 
    display.getSize(size); 
    return size.y; 
} 

Dieses Update-Methode wird in onCreate Methode meiner Activity genannt:

@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_single_post); 

    fixNestedScrollViewScrolling(); 

    // some other stuff here ... 
} 
Verwandte Themen