android - CollapsingToolbarLayout 禁用下拉扩展

标签 android pull-to-refresh android-collapsingtoolbarlayout android-appbarlayout

我有一个已有条件禁用的 CollapsingToolbar。当用户在该条件下加载 View 时,它看起来就像一个普通的 ToolBar 对象。

唯一奇怪的是,如果它们向下拖动,例如在下拉刷新样式操作中,CollapsingToolbar 会展开,尽管我希望和代码相反!

这是我的,注释掉的代码反射(reflect)了我也尝试过的

    appBar.setExpanded(false);
    appBar.setActivated(false);
    /*CollapsingToolbarLayout.LayoutParams p = (CollapsingToolbarLayout.LayoutParams)toolbar.getLayoutParams();
    p.setCollapseMode(CollapsingToolbarLayout.LayoutParams.COLLAPSE_MODE_PIN);
    toolbar.setLayoutParams(p);

    CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) appBar.getLayoutParams();
    appBarLayoutParams.setBehavior(null);
    appBar.setLayoutParams(appBarLayoutParams);*/
    CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams)appBar.getLayoutParams();
    lp.height = (int) getResources().getDimension(R.dimen.app_bar_height);

我想禁用下拉扩展,但我没有找到实现它的方法。此 Activity 包含一个 recyclerview,这是用户主要与之交互的地方。

最佳答案

我与方法密切相关。展开布局行为控件 AppBarLayout。所以你需要更新那个小部件的扩展方法。基于AppBarLayout Doc .

AppBarLayout appBarLayout;

//....

public void setExpandToolbar (boolean isEpand) {
    if (isExpand) {
       appBarLayout.setExpanded(true,true);
    } 
    else {
       appBarLayout.setExpanded(false,true);
    }
}

让我知道这个问题。因为您可以通过其他解决方案控制扩展。例如,通过自定义布局参数。

AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) 
toolbar.getLayoutParams();
p.setScrollFlags(0);
toolbar.setLayoutParams(p);

关于android - CollapsingToolbarLayout 禁用下拉扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38469579/

相关文章:

android - Media Player同步播放音频和视频

android - PullToRefresh(chrisbanes lib) 窗口泄漏

java - 如何在 Activity 底部使用带有选项卡 View 的 ChrisBanes 的 ActionBar-PullToRefresh 库

android - 如何确定 CollapsingToolbar 已折叠?

java - 如何获得折叠工具栏布局的最大垂直偏移

android - CollapsingToolbarLayout : Change home button color when expanded

java - 如何为特定联系人设置自定义铃声?

try catch 未处理的 Android 地理编码器错误

java - 如何动态更改来自不同类的 View 背景颜色

iOS 7 风格的下拉刷新