首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在没有CoordinatorLayout的情况下,以编程方式折叠/展开工具栏?

在没有CoordinatorLayout的情况下,可以通过编程方式折叠/展开工具栏。以下是一种实现方式:

  1. 首先,确保你的布局文件中包含一个Toolbar作为工具栏的容器。
  2. 在Activity或Fragment中,获取到Toolbar的实例,并设置它的折叠模式为COLLAPSE_MODE_PIN,这样在折叠时工具栏会固定在顶部。
代码语言:txt
复制
Toolbar toolbar = findViewById(R.id.toolbar);
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
toolbar.setLayoutParams(params);
  1. 在布局文件中,将工具栏的高度设置为固定值,以便在折叠时能够正确计算高度。
代码语言:txt
复制
<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/colorPrimary"
    app:layout_scrollFlags="scroll|enterAlways">
</androidx.appcompat.widget.Toolbar>
  1. 在代码中,通过监听滚动事件来实现工具栏的折叠/展开。
代码语言:txt
复制
AppBarLayout appBarLayout = findViewById(R.id.appBarLayout);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
    boolean isExpanded = true;
    int scrollRange = -1;

    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
        if (scrollRange == -1) {
            scrollRange = appBarLayout.getTotalScrollRange();
        }
        if (scrollRange + verticalOffset == 0) {
            // 完全折叠
            isExpanded = false;
        } else {
            // 非折叠状态
            isExpanded = true;
        }
    }
});

通过以上步骤,你可以在没有CoordinatorLayout的情况下,以编程方式折叠/展开工具栏。这种方法适用于不使用CoordinatorLayout的情况下,需要手动控制工具栏的折叠/展开行为的场景。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ai
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iotexplorer
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(TBCAS):https://cloud.tencent.com/product/tbcs
  • 腾讯云元宇宙(Tencent Cloud Metaverse):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【翻译】MotionLayout实现折叠工具栏(Part 1)

我们开始之前,有必要在这里澄清一下: CoordinatorLayout 中使用 CollapsingToolbarLayout 来实现折叠工具栏是没任何问题。...举个例子,一个折叠工具栏应该根据用户滚动进行展开折叠,所以实际动画运行应该时刻跟随用户拖拽进行。这也是那些框架办不到地方。 废话不多说,让我们看下我们所要尝试模拟做到行为动作。...表示工具栏完全展开状态,而另一个表示工具栏处于完全闭合状态就足以。...折叠状态下它会垂直居中,而在展开状态下它会对齐底部,因此 TextView 会更多相对于 ImageView 大小尺寸来进行相关设定。...这事实上效果已经非常接近,但是仔细看你会发现这里与刚开始我们使用 CoordinatorLayout 方式有一个细微区别: CoordinatorLayout 布局下图片褪色渐变动画和 MotionLayout

1.8K31

Android开发笔记(一百三十五)应用栏布局AppBarLayout

RecyclerView是其中一个特工,它可用来替代ListView和GridView;替代ScrollView则另有其人,它便是嵌套滚动视图NestedScrollView,Android5.0之后...2、AppBarLayout内部高度也可能变化,比如它嵌套了可折叠工具栏布局CollapsingToolbarLayout,有关可折叠工具栏布局详细介绍参见《Android开发笔记(一百三十六)可折叠工具栏布局...所以本文只做下面三个标志概念解释,有关效果图参见《Android开发笔记(一百三十六)可折叠工具栏布局CollapsingToolbarLayout》。...3、exitUntilCollapsed : 该标志保证页面上至少能看到最小化工具栏,不会完全看不到工具栏。具体滚动说明如下所示: 向上滚动:头部先往上收缩,一直滚到折叠最小高度。...然后头部向下展开。 4、enterAlwaysCollapsed:该标志一般跟enterAlways一起使用,它与enterAlways区别在于有折叠操作,而单独enterAlways没有折叠

1.8K40

【翻译】MotionLayout实现折叠工具栏(Part 2)

通过上一篇文章我们了解了基本折叠工具栏动画行为,使用是 MotionLayout ,第一次尝试效果与 CoordinatorLayout 中使用 CollapsingToolbarLayout...让我们先看下 CoordinatorLayout 版本实现效果,注意图片在工具栏几乎快要完全折叠之前是不会开始渐变到主色彩动画: ?...我们之前 ImageView 控件上定义关于 imageAlpha 属性过渡动画,设定是从展开位置值 255 到折叠位置值 0 之间进行,同时 MotionLayout 动画过程中会进行插值运算...目前来说,发生情况是:图片透明度在过渡动画还没有达到 60% 之前是不会发生变化(也就是至少超过一半折叠状态下不发生变化),接下来会慢慢开始淡出,直到工具栏达到 90% 折叠时完全透明。 ?...最终标题文本会走在工具栏折叠动画之前,接着折叠完全结束时候直接回落到正确位置上: ?

1.6K30

通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout

假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部时候展开完。...同理这是展开时Title文字特点外形设置 app:contentScrim 这是toolbar 标题工具栏停留在顶部时候背景设置 app:expandedTitleMarginStart 设置扩张时候...(还没有收缩时)title向左填充距离 app:expandedTitleMarginEnd 这个同理是收缩结束时向左填空距离 其他就不一一介绍了,具体去查看API文档即可获知。...我在做这里时候遇到一个问题,那就是CollapsingToolbarLayout里Title问题,一般默认是显示,即使你不写,它也有会一个默认值一直显示在那里,等折叠收缩完时候,停留在标题工具栏上...如果设计需求不要求选项卡在切换时附带有图标的切换效果,仅仅文字颜色发生变化响应用户点击事件,那么TabLayout和ViewPager建立联系可以用官方提供方法,它可以做到交互双向联动,也就是点击

2.2K90

CoordinatorLayout使用全解析

exitUntilCollapsed:当你定义了一个minHeight,此布局将在滚动到达这个最小高度时候折叠。 snap:当一个滚动事件结束,如果视图是部分可见,那么它将被滚动到收缩或展开。...例如,如果视图只有底部25%显示,它将折叠。相反,如果它底部75%可见,那么它将完全展开。...CollapsingToolbarLayout可以通过app:contentScrim设置折叠工具栏布局颜色,通过app:statusBarScrim设置折叠时状态栏颜色。...NestedScrollView 新版support-v4兼容包里面有一个NestedScrollView控件,这个控件其实和普通ScrollView并没有多大区别,这个控件其实是Meterial...具体有三种方式:通过代码绑定、XML中绑定或者通过注释实现自动绑定。

1.8K20

现在,编程方式 Electron 中上传文件,是非常简单!

当时,讨论区 @erikmellum 一句 "现在在Electron 中,编码方式上传文件,几乎是不可能",让我放弃了对 Electron 本身机制思考.转而,基于当时 App 已有的本地代理服务器...具体到编码方式上传文件这个问题上.这个问题完整描述应该是类似于这样: 网站有自己登录认证机制,不需要在对网站登录机制做任何修改前提下,如何自动上传用户相关文件,比如用户头像?....当然,这个限制,也是有足够多方式来弥补,比如让用户桌面 App 上,再单独登录一次.不管怎样,解决问题就好....但是,Electron 提供了一种全新可能.它让你可以 Node 侧,直接拿到 Chromium 侧完整 Cookie.然后你就可以使用 Node 方式,最精简代码,最符合直觉方式来处理文件上传...dom 结构,但是预注入js文件执行时,是没有任何 dom 结构.注入js文件,执行时机非常早,甚至早过 dom 或任意其他css/js 文件 加载或渲染.

4.8K00

CoordinatorLayout 处理滚动

目前,此框架提供了几种不需要写任何自定义动画代码就可以(使动画)工作方式。这些效果包括: 上下滑动 Floating Action Button 给 Snackbar 提供空间。 ?...将 Toolbar 或 header 展开或者收起从而为主内容区提供空间。 ? 控制哪一个 view 何种速率进行展开或收起,包括视差滚动效果动画。 ?... github 上可以查看完整源码。这个项目是最容易理解 CoordinatorLayout 方式之一。 设置 首先要确保遵循 Design Support Library 说明。...注意:由于这个已知 issue,因此不要尝试OnCreate() 方法中展开底部表。...CoordinatorLayout 工作方式是通过搜索所有 XML 中静态地使用 app:layout_behavior 标签或者编程方式 View 类中使用 @DefaultBehavior

4.7K92

Android之MaterialDesign应用技术2-仿支付宝上滑搜索框缓慢消失

1.1:CoordinatorLayout中设置   前面的添加依赖,在上一篇中已经说过,在这就不在重复了,协调者布局中这次又加入了一个新布局CollapsingToolbarLayout(折叠工具栏布局...),很明显上面的效果图中工具栏上滑同时把图片折叠进去了,这是一个动画效果,如果不是MaterialDesign库强大,这都是我们自己写。...竟然折叠部分是toolbar和背景图片,这就理所应当把这两个空间写在CollapsingToolbarLayout中,因为上面协调者布局和appbar布局很简单,这里就不在写了,只贴出折叠布局代码(...2.1:布局书写 这里布局和上面是一样,只是把imageview换成了LinearLayout布局,该布局中写上我们熟悉输入框和图片按钮即可, 最外层-->里层还是:CoordinatorLayout...一般情况下,EditText获得光标的时候hint会自动隐藏,这样不是很友好。

1.5K100

Android 三级NestedScroll嵌套滚动实践

这里滑动逻辑是: 向上滑动时,最先折叠刷新动画,向下滑动时最后展开刷新动画。 向上滑动列表时先折叠 AppbarLayout,AppbarLayout 完全折叠后再折叠搜索框。...向下滑动列表时展开 AppbarLayout 之前先展开搜索框。 列表没滑动到顶部时可以通过触发一定速度向下 fling 来展开搜索框。...这里我们需要做是实现第一对嵌套接口,新建一个自定义 Layout 实现 NestedScrollingParent2 接口作为三级嵌套 Grand,负责搜索框和刷新动画折叠展开。...根据上图即刻首页滑动实现思路就很简单了: onPrePreScroll 中执行折叠刷新动画逻辑,onAfterAfterScroll 中执行展开刷新动画逻辑。...列表没滑到顶部根据 fling 展开搜索框逻辑单独 Parent onNestedPreFling 里做,这条算是一个特殊处理。 以上就是本文全部内容,希望对大家学习有所帮助。

1.5K30

Android 折叠式布局

从头开始 先建立一个名为 Folding 项目,然后创建一个Activity, OneActivity 这个Activity带有自身XML布局文件, ** 标题栏折叠** 首先打开activity_one.xml...嵌套好之后设置一些简单样式即可 到这一步基本上这个折叠布局已经完成了,然后只要填充相关控件即可实现效果,要注意点是Toolbar中放置是你需要折叠展开控件,而AppBarLayout中放置是...Toolbar折叠之后显示控件,这个地方你可以放任何控件,前提是你得避免控件之间冲突。...到这里我们就已经实现了这个折叠式,当你点击这个蓝色背景标题往上面滑动时,ImageView就会折叠起来,往下滑动时图片就会展开。...总高度就会超过手机屏幕,形成滑动之后图片向上面展示效果,其实加了NestedScrollView之后,即使里面什么东西都没有,你照样可以滚动,但是如果你用ScrollView就不行,它里面就必须要有东西才行

1.3K20

为任意屏幕尺寸构建 Android 界面

窗口大小类分为三类,分别是较小型、中等型和展开型,它们旨在平衡布局简单和灵活性,针对特殊情况优化您应用。...这些新 API 还将消除设备横竖屏切换时需要自定义逻辑需求,大多数情况下只需针对不同窗口大小类断点进行设计,应用就会适应正确布局和各种应用状态。...其中,较小型代表了竖屏模式下手机典型模式,中等型代表了大部分平板电脑和更大折叠设备尺寸,展开型则代表了平板电脑或更大折叠设备,或是桌面设备横屏模式下显示情况。...△ JetNews 侧边抽屉导航栏展示 回到 JetNews,我们可以看到大屏状态下,侧边抽屉导航栏会模态方式出现,但它会延伸到整个屏幕而出现大量空白区域。...一是详情页面嵌套 NavHost,另外一种方案是统一 ViewModel,由于详情页面内并没有下一级别的导航入口而只会显示一篇打开文章,我们决定采用第二种方式,将两个 ViewModel 合二为一来简化结构

4.1K20

CollapsingToolbarLayout使用

CollapsingToolbarLayout 可以看到,Toolbar标题放大并在下方显示,当我们向上滑动列表时,顶部Header部分图片向上折叠隐藏,标题向上移动并缩小,同时渐显式方式显示蓝色主题...是对 Toolbar 一个包装,达到折叠 AppBar 交互视觉效果。...关于CollapsingToolbarLayout属性官网上可以查到,这里我只介绍案例中我们常用几个属性:title标题,布局展开时放大显示图片底部,布局折叠时缩小显示Toolbar左侧。...注意,没有设置这个属性时,默认使用Toolbar标题;statusBarScrim顶部视图折叠状态下,状态栏遮罩色。通常这样设置:app:statusBarScrim="?...当设置为1.0,滚动列表时图片不会折叠移动; 代码实现: 关于CoordinatorLayout作为根布局容器如何协调子控件之间交互行为,可以参考上一篇文章,这里我介绍一下本例中几个新注意点。

2.4K60

Android开发笔记(一百四十四)高仿支付宝头部伸缩动画

之所以要嵌套这么多层,是因为要完成以下功能: 1、CoordinatorLayout嵌套AppBarLayout,这是为了让头部导航栏能够跟随内容视图下拉而展开,跟随内容视图上拉而收缩。...; 3、CollapsingToolbarLayout嵌套Toolbar,这是为了定义导航栏上方无论何时都要显示长条区域,其中Toolbar还要定义两个不同样式布局,用于分别显示展开与收缩状态时工具栏界面...> 然而仅仅实现上述布局并非万事大吉,支付宝首页头部伸缩时可是有动画效果,就像下面这个动图那样有淡入淡出渐变动画: ?...这个渐变动画其实可分为两段: 1、导航栏从展开状态向上收缩时,头部各控件要慢慢向背景色过渡,也就是淡入效果; 2、导航栏向上收缩到一半,顶部工具栏要换成收缩状态下工具栏布局,并且随着导航栏继续向上收缩...; 2、导航栏向下展开到一半,顶部工具栏要换成展开状态下工具栏布局,并且随着导航栏继续向下展开,新工具栏各控件也要慢慢变得清晰起来,也就是淡出效果。

1.1K10

详解android特性之CoordinatorLayout用法探析实例

当我AS上新建一个module时,系统默认最外层布局不再是我们熟悉五大布局中一种,而是一个全新布局:CoordinatorLayout。...假设你定义了一个最小高度(minHeight)同时enterAlways也定义了,那么view将在到达这个最小高度时候开始显示,并且从这个时候开始慢慢展开,当滚动到顶部时候展开完。...下面来通过flag为exitUntilCollapsed时,来实现Toolbar折叠显示效果。...app:layout_collapseMode=”parallax”,这个flag代表是视差模式,即在折叠时候会有视差折叠效果,而“pin”,固定模式,就是折叠最后固定在最顶端。...CoordinatorLayout工作原理是搜索定义了CoordinatorLayout Behavior子view,不管是通过xml中使用app:layout_behavior标签还是通过代码中对

82241
领券