Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AppBarLayout take space after setVisibility(View.GONE)

Tags:

I want to hide my AppBarLayout for adding a view dynamically which will take the height of the screen. For this, i want to remove a view temporaly by setting the visibility of my AppBarLayout to GONE. The view is not visible, but take space in the screen(half of the height of screen).

My XML code :

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/coordinatorFriendProfil" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#81D4FA" android:fitsSystemWindows="true">  <android.support.design.widget.AppBarLayout     android:id="@+id/fProfilAppBar"     android:layout_width="match_parent"     android:layout_height="250dp"     android:fitsSystemWindows="true">      <android.support.design.widget.CollapsingToolbarLayout         android:id="@+id/fProfilCollapsing"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:background="#B3E5FC"         android:gravity="center"         android:orientation="vertical"         app:contentScrim="#03A9F4"         app:layout_scrollFlags="scroll|exitUntilCollapsed">          <LinearLayout             android:id="@+id/fProfilUserInfo"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:gravity="center"             android:orientation="vertical">              <com.neden.neden.RoundedImageView                 android:id="@+id/ivFriendPicture"                 android:layout_width="150sp"                 android:layout_height="150sp"                 android:layout_gravity="center"                 android:fitsSystemWindows="true"                 android:src="@drawable/photo"                 app:border_color="#64B5F6"                 app:border_width="4dp"                 app:layout_collapseMode="parallax"                 app:layout_collapseParallaxMultiplier="0.7" />              <TextView                 android:id="@+id/fProfilName"                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:gravity="center"                 android:textSize="15pt" />          </LinearLayout>          <android.support.v7.widget.Toolbar             android:id="@+id/fProfilToolbar"             android:layout_width="match_parent"             android:layout_height="?attr/actionBarSize"             app:layout_collapseMode="pin"             app:layout_scrollFlags="scroll|enterAlways" />      </android.support.design.widget.CollapsingToolbarLayout>  </android.support.design.widget.AppBarLayout>  <FrameLayout     android:id="@+id/fProfilContainer"     android:layout_width="match_parent"     android:layout_height="match_parent"     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 
like image 930
Okn Avatar asked Sep 21 '15 21:09

Okn


Video Answer


1 Answers

Your problem is caused by this line

    app:layout_behavior="@string/appbar_scrolling_view_behavior" 

You will have to set it programatically on CoordinatorLayout not the actual container fragment that has that field.

Here is how

    mContainer = (FrameLayout) findViewById(R.id.main_content_container);      CoordinatorLayout.LayoutParams params =             (CoordinatorLayout.LayoutParams) mContainer.getLayoutParams();     params.setBehavior(null);      mContainer.requestLayout(); 

If you want to make it scrolling again

   params.setBehavior(new AppBarLayout.ScrollingViewBehavior()); 
like image 80
Adam Fręśko Avatar answered Sep 29 '22 18:09

Adam Fręśko