我正在使用CollapsingToolBarLayout
以及AppBarLayout
和CoordinatorLayout工具栏
设置为固定,我想知道当折叠ToolBarLayout
折叠时,是否有方法更改工具栏的标题文本。
总结一下,我想要滚动和展开时的两个不同的标题。
提前谢谢大家
将OnOffsetChangedListener
连接到AppBarLayout
。当verticalOffset
达到0或小于Toolbar
高度时,表示CollapsingToolbarLayout已折叠,否则将展开或展开。
mAppBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if(verticalOffset == 0 || verticalOffset <= mToolbar.getHeight() && !mToolbar.getTitle().equals(mCollapsedTitle)){
mCollapsingToolbar.setTitle(mCollapsedTitle);
}else if(!mToolbar.getTitle().equals(mExpandedTitle)){
mCollapsingToolbar.setTitle(mExpandedTitle);
}
}
});
此解决方案非常适合我检测AppBarLayout
折叠或展开。
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (Math.abs(verticalOffset)-appBarLayout.getTotalScrollRange() == 0)
{
// Collapsed
}
else
{
//Expanded
}
}
});
在 AppBarLayout
上使用 addOnOffsetChangedListener
。
我分享基于@Frodio贝金斯和@Nifhel代码的完整实现:
public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener {
public enum State {
EXPANDED,
COLLAPSED,
IDLE
}
private State mCurrentState = State.IDLE;
@Override
public final void onOffsetChanged(AppBarLayout appBarLayout, int i) {
if (i == 0) {
if (mCurrentState != State.EXPANDED) {
onStateChanged(appBarLayout, State.EXPANDED);
}
mCurrentState = State.EXPANDED;
} else if (Math.abs(i) >= appBarLayout.getTotalScrollRange()) {
if (mCurrentState != State.COLLAPSED) {
onStateChanged(appBarLayout, State.COLLAPSED);
}
mCurrentState = State.COLLAPSED;
} else {
if (mCurrentState != State.IDLE) {
onStateChanged(appBarLayout, State.IDLE);
}
mCurrentState = State.IDLE;
}
}
public abstract void onStateChanged(AppBarLayout appBarLayout, State state);
}
然后你可以使用它:
appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
@Override
public void onStateChanged(AppBarLayout appBarLayout, State state) {
Log.d("STATE", state.name());
}
});
我已经实现了一个带有视差视图的。 当我在一次连续滚动中向上滚动回收站视图时,它会展开。 但是当我对嵌套的滚动视图发出“fling”命令时,它停止在嵌套的滚动视图的顶部。您必须再次投掷才能取消折叠< code > CollapsingToolbarLayout , Android Studio 2.0中的ScrollingActivity模板演示了这个问题。克里斯·贝恩(Chris Bain)的奶酪
这个链接!告诉我如何禁用折叠工具栏布局。我想要的行为是折叠并禁用折叠工具栏,并在没有internet连接时显示错误视图。那么我如何才能做到这一点,折叠和禁用折叠工具栏布局?
我正在尝试在我的android应用程序中实现折叠工具栏。我可以按我希望的方式显示工具栏,但滚动时它不会塌陷。 我正在使用以下代码 activity.xml main_toolbar.xml 下面是屏幕的外观
我知道有成千上万个这样的问题,但是我尝试了所有的方法,但是我不能想出一个解决方案。基本上,我使用的是NoActionBar风格的活动。 风格。xml: v21/风格。xml: 家庭活动正常,抽屉将在透明状态栏下正常打开: 问题是使用以下布局的另一个活动: 基本上,状态栏是透明的,所以我看不到它,因为我的colorPrimary是白色的。奇怪的是,如果我折叠工具栏(因此只有选项卡可见),状态栏将正确
我试着做一个弯曲的折叠工具栏,但是没有白色的角落覆盖我的内容,我成功地创建了视图,但是即使设置AppBarLayout背景为透明,也没有给我透明的边缘
我有一个折叠工具栏布局设置,我在那里放置壁纸。我希望能够阻止它一路崩溃。 我尝试过minheight和许多其他事情,但无法弄清楚。 怎么才能让它停止折叠到第二张截图? 加载活动时查看 期望的停止点 当前停止点