[英]Android Collapsing Toolbar was not hiding other element while collapsed
I have a layout on Android support design collapsing toolbar which contains the TextView but when I collapse my toolbar. 我在Android支持设计折叠工具栏上有一个布局,其中包含TextView,但是当我折叠工具栏时。 some TextView showing with toolbar title.
一些带有工具栏标题的TextView。 I want to hide every other things rather than toolbar and title.
我想隐藏其他所有东西,而不是工具栏和标题。 Here is my layout.
这是我的布局。
<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>
And my java code is... 我的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) {
}
});
Since I resolve my problem myself I'm posting this answer so it will helpfull for others . 由于我自己已解决问题,因此我正在发布此答案,因此对其他人有帮助。
CollapsingToolBar
extends FrameLayout
so any xml tag written after another tag will be layered as top of parent. CollapsingToolBar
扩展了FrameLayout
因此在另一个标签之后编写的任何xml标签都将被分层为父对象的顶部。 My RelativeLayout
is written after the Toolbar
thats why Relative Layout
elements are showing on Toolbar
after CollapsingToolbar
collapsed. 我的
RelativeLayout
写在Toolbar
后面,这就是为什么CollapsingToolbar
折叠后在Toolbar
上显示Relative Layout
元素的原因。 just putting RelativeLayout
before the Toolbar
will hides the element after toolbar collapsed. 只需将
RelativeLayout
放在Toolbar
之前,即可在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>
try this: 尝试这个:
change your CollapsingToolbarLayout
layout attribute: 更改您的
CollapsingToolbarLayout
布局属性:
use: 采用:
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
instead of 代替
app:layout_scrollFlags="scroll|exitUntilCollapsed"
and add this attribute to the toolbar component 并将此属性添加到工具栏组件
android:minHeight="?attr/actionBarSize"
Explanation: 说明:
Assuming enterAlways
is declared and you have specified a minHeight
, you can also specify enterAlwaysCollapsed
. 假设声明了
enterAlways
并指定了minHeight
,则还可以指定enterAlwaysCollapsed
。 When this setting is used, your view will only appear at this minimum height. 使用此设置时,视图将仅以该最小高度显示。 Only when scrolling reaches to the top will the view expand to its full height:
仅当滚动到达顶部时,视图才会扩展到其完整高度:
for details: https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout 有关详细信息: https : //guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.