1

У меня есть макет на панели поддержки Android, которая сворачивает панель инструментов, которая содержит TextView, но когда я сворачиваю свою панель инструментов. некоторые TextView с заголовком панели инструментов. Я хочу скрыть все остальное, а не панель инструментов и название. Вот мой макет.Android Collapsing Toolbar не скрывал другой элемент, а затем свертывался

<android.support.design.widget.AppBarLayout 
    android:id="@+id/MyAppbar" 
    android:layout_width="match_parent" 
    android:layout_height="256sp" 
    android:fitsSystemWindows="true"> 
    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapse_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed" 
     android:background="#ff009688" 
     app:contentScrim="@color/colorPrimary" 
     app:expandedTitleMarginTop="100sp" 
     app:expandedTitleGravity="center|bottom" 
     android:fitsSystemWindows="true"> 
     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" 
      app:srcCompat="@drawable/bgimg" 
      app:layout_collapseMode="parallax"/> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/MyToolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_collapseMode="pin" /> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      app:layout_anchor="@+id/MyAppbar" 
      android:layout_height="match_parent"> 
      <de.hdodenhof.circleimageview.CircleImageView 
       android:id="@+id/profile_image" 
       android:layout_width="96dp" 
       android:layout_height="96dp" 
       android:src="@drawable/studentprofile" 
       app:civ_border_width="2dp" 
       app:civ_border_color="#0adcf4" 
       android:layout_marginTop="58dp" 
       android:layout_alignParentTop="true" 
       android:layout_centerHorizontal="true" /> 

      <TextView 
       android:id="@+id/branch" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Branch: " 
       android:textColor="@color/textColorPrimary" 
       android:textSize="14sp" 
       android:layout_marginBottom="20sp" 
       android:layout_alignParentBottom="true" 
       android:layout_centerInParent="true" /> 
     </RelativeLayout> 
    </android.support.design.widget.CollapsingToolbarLayout> 

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

И мой Java-код ...

collapsingToolbar = 
      (CollapsingToolbarLayout) findViewById(R.id.collapse_toolbar); 
    collapsingToolbar.setTitle(name); 
    collapsingToolbar.setExpandedTitleTextAppearance(R.style.expandedappbar); 
    collapsingToolbar.setCollapsedTitleTextAppearance(R.style.collapsedappbar); 
    final ImageView profile=(ImageView)findViewById(R.id.profile_image); 
    Picasso.with(this) 
      .load(photo_url) 
      .placeholder(R.drawable.studentprofile) 
      .networkPolicy(NetworkPolicy.NO_CACHE) 
      .into(new Target() { 
       @Override 
       public void onBitmapLoaded (final Bitmap bitmap, Picasso.LoadedFrom from){ 
       /* Save the bitmap or do something with it here */ 
        Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() { 

         @Override 
         public void onGenerated(Palette palette) { 
          collapsingToolbar.setContentScrimColor(palette.getMutedColor(ContextCompat.getColor(context,R.color.colorPrimary))); 
          collapsingToolbar.setStatusBarScrimColor(palette.getMutedColor(ContextCompat.getColor(context,R.color.colorPrimaryDark))); 
         } 
        }); 
        //Set it in the ImageView 
        profile.setImageBitmap(bitmap); 
       } 

       @Override 
       public void onBitmapFailed(Drawable errorDrawable) { 
       } 

       @Override 
       public void onPrepareLoad(Drawable placeHolderDrawable) { 
       } 
      }); 

ответ

2

Так как я решить мою проблему сам я отправляю этот ответ так что это будет полезно для других. CollapsingToolBar extends FrameLayout, поэтому любой тег xml, написанный после другого тега, будет располагаться как верхний элемент родительского элемента. Мой RelativeLayout написан после Toolbar вот почему Relative Layout элементы отображаются на Toolbar после того, как CollapsingToolbar рухнул. просто кладет RelativeLayout до того, как Toolbar скрывает элемент после свертывания панели инструментов.

<android.support.design.widget.CollapsingToolbarLayout 
    android:id="@+id/collapse_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_scrollFlags="scroll|exitUntilCollapsed" 
    android:background="#ff009688" 
    app:contentScrim="@color/colorPrimary" 
    app:expandedTitleMarginTop="100sp" 
    app:expandedTitleGravity="center|bottom" 
    android:fitsSystemWindows="true"> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="fitXY" 
     app:srcCompat="@drawable/bgimg" 
     app:layout_collapseMode="parallax"/> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     app:layout_anchor="@+id/MyAppbar" 
     android:layout_height="match_parent"> 
     <de.hdodenhof.circleimageview.CircleImageView 
      android:id="@+id/profile_image" 
      android:layout_width="96dp" 
      android:layout_height="96dp" 
      android:src="@drawable/studentprofile" 
      app:civ_border_width="2dp" 
      app:civ_border_color="#0adcf4" 
      android:layout_marginTop="58dp" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" /> 

     <TextView 
      android:id="@+id/branch" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="Branch: " 
      android:textColor="@color/textColorPrimary" 
      android:textSize="14sp" 
      android:layout_marginBottom="20sp" 
      android:layout_alignParentBottom="true" 
      android:layout_centerInParent="true" /> 
    </RelativeLayout> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/MyToolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     app:layout_collapseMode="pin" /> 

</android.support.design.widget.CollapsingToolbarLayout> 
+0

я нашел, что это так же, как я испытывал такое же решение :). Отличная работа! – Radu

0

попробовать это:

изменить ваш атрибут CollapsingToolbarLayout расположение:

использование:

app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" 

вместо

app:layout_scrollFlags="scroll|exitUntilCollapsed" 

и добавьте этот атрибут в компонент панели инструментов

android:minHeight="?attr/actionBarSize" 

Объяснение:

Предполагая, что enterAlways объявляется и вы указали minHeight, вы можете также указать enterAlwaysCollapsed. Когда этот параметр используется, ваше представление будет отображаться только на этой минимальной высоте. Только тогда, когда бегущие достигает к вершине будет вид расширения на полную высоту:

Подробности: https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout

+0

после этой операции панель скрывается в режиме схлопывания –

Смежные вопросы