Pse*_*328 137 android android-collapsingtoolbarlayout
标题说明了一切.我试过setExpandedTitleColor
和setCollapsedTitleColor
(开关,并从透明的),没有运气.我也看不到任何内置的方法可以做我正在寻找的东西.
我只想在CollapsingToolbarLayout完全折叠时显示标题,否则,我需要隐藏它.
任何提示?
ste*_*274 272
您可以添加OnOffsetChangedListener
以AppBarLayout
确定何时CollapsingToolbarLayout
折叠或展开并设置其标题.
final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsingToolbarLayout);
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appBarLayout);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
boolean isShow = true;
int scrollRange = -1;
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (scrollRange == -1) {
scrollRange = appBarLayout.getTotalScrollRange();
}
if (scrollRange + verticalOffset == 0) {
collapsingToolbarLayout.setTitle("Title");
isShow = true;
} else if(isShow) {
collapsingToolbarLayout.setTitle(" ");//careful there should a space between double quote otherwise it wont work
isShow = false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
Rúb*_*usa 43
我尝试了dlohani的解决方案,但由于淡出而不喜欢它.使用此解决方案,您可以完全消除褪色.
诀窍是创建一个textSize等于0.1sp或0sp的新样式(这一个在SDK <19时崩溃)和textColor透明:
对于SDK <19
<style name="CollapsingToolbarLayoutExpandedTextStyle" parent="AppTheme">
<item name="android:textColor">@android:color/transparent</item>
<item name="android:textSize">0.1sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
对于SDK> = 19
<style name="CollapsingToolbarLayoutExpandedTextStyle" parent="AppTheme">
<item name="android:textColor">@android:color/transparent</item>
<item name="android:textSize">0sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后将其应用于布局中的CollapsingToolbarLayout:
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:expandedTitleTextAppearance="@style/CollapsingToolbarLayoutExpandedTextStyle"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
Run Code Online (Sandbox Code Playgroud)
dlo*_*ani 36
通过在xml布局中添加以下属性,我能够获得所需的效果:
app:expandedTitleTextAppearance="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)
所以我的CollapsingToolbarLayout看起来像这样
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingToolbarLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:expandedTitleTextAppearance="@android:color/transparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
Run Code Online (Sandbox Code Playgroud)
小智 23
我有一个更简单的答案:
final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
collapsingToolbarLayout.setTitle("Your Title");
collapsingToolbarLayout.setExpandedTitleColor(getResources().getColor(R.color.transperent)); // transperent color = #00000000
collapsingToolbarLayout.setCollapsedTitleTextColor(Color.rgb(0, 0, 0)); //Color of your title
Run Code Online (Sandbox Code Playgroud)
快乐的编码!
Har*_*iya 20
此代码适用于我:使用color.parse颜色,因为如果您的背景颜色不同,则替换为白色,您的标题不显示
collapsingToolbarLayout.setExpandedTitleColor(Color.parseColor("#00FFFFFF"));
Run Code Online (Sandbox Code Playgroud)
或者你可以使用透明
collapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT);
Vis*_*hal 16
我成功添加了淡出的textview,它非常简单.我无法相信没有人想出这个.在工具栏中添加文本视图,并根据appbar回调中的verticalOffset设置它的alpha
mAppBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
mTitleTextView.setAlpha(Math.abs(verticalOffset / (float)
appBarLayout.getTotalScrollRange()));
}
});
Run Code Online (Sandbox Code Playgroud)
Ale*_*ecs 12
这里最简单,最有效的解决方案也是api 23:
app:expandedTitleTextAppearance必须继承TextAppearance.
因此,在styles.xml中添加以下行:
<style name="TransparentText" parent="@android:style/TextAppearance">
<item name="android:textColor">#00000000</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后,在您的CollapsingToolbarLayout中,添加此行.
app:expandedTitleTextAppearance="@style/TransparentText"
Run Code Online (Sandbox Code Playgroud)
这就是所有人!
下面的解决方案完美地工作。
appbar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (Math.abs(verticalOffset)-appBarLayout.getTotalScrollRange() == 0)
{
// Collapsed
setTitle("Title To Show");
}
else
{
// Expanded
setTitle("");
}
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
78120 次 |
最近记录: |