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

Android -滚动viewpager时退出工具栏

Android中的ViewPager是一种用于实现滑动页面的控件,它可以让用户在不同的页面之间进行滑动切换。而工具栏(Toolbar)是Android中常用的一种界面元素,用于显示应用程序的标题、菜单按钮等功能。

当滚动ViewPager时退出工具栏,可以通过以下步骤实现:

  1. 首先,在布局文件中定义一个ViewPager和一个Toolbar,并将它们放置在合适的位置。
代码语言:xml
复制
<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    android:elevation="4dp"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar" />

<androidx.viewpager.widget.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  1. 在Activity或Fragment中,找到Toolbar和ViewPager的实例,并设置ViewPager的滚动监听器。
代码语言:java
复制
Toolbar toolbar = findViewById(R.id.toolbar);
ViewPager viewPager = findViewById(R.id.viewPager);

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        // 页面滚动时的回调方法
    }

    @Override
    public void onPageSelected(int position) {
        // 页面选中时的回调方法
    }

    @Override
    public void onPageScrollStateChanged(int state) {
        // 页面滚动状态改变时的回调方法
        if (state == ViewPager.SCROLL_STATE_DRAGGING) {
            // 当开始拖动ViewPager时,隐藏Toolbar
            toolbar.setVisibility(View.GONE);
        } else if (state == ViewPager.SCROLL_STATE_IDLE) {
            // 当ViewPager停止滚动时,显示Toolbar
            toolbar.setVisibility(View.VISIBLE);
        }
    }
});

在上述代码中,我们通过设置ViewPager的滚动监听器,当ViewPager处于拖动状态时,隐藏Toolbar;当ViewPager停止滚动时,显示Toolbar。

这样,当用户滚动ViewPager时,工具栏会根据滚动状态进行显示或隐藏,提供更好的用户体验。

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

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android笔记——ViewPager循环、自动滚动效果

ViewPager循环、自动滚动,这种效果很常见,一般app首页都会有焦点图、或者用户引导页面。第三方比较好用的我推荐阿里开源的UltraViewPager,毕竟大公司的,用着放心吧 ๑乛◡乛๑。...有2种方案实现循环滚动,一种是在PagerAdapter设置最大数量为int最大值,另一种就是本文实现的。前一种感觉有点奇怪,如果不带自动循环滚动的话还可以用,毕竟用户一般不会切换这么多次能看到头。...而对于循环滚动的话,需要本文的类似思路实现起来比较好一点吧,原理看上图即可。例子效果图在最后。....view.PagerAdapter; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import...android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height

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

    Scroll: 表示向下滚动,这个View会被滚出屏幕范围直到隐藏. enterAlways: 表示向上滚动,这个View会随着滚动手势出现,直到恢复原来的位置. enterAlwaysCollapsed...exitUntilCollapsed: 同样顾名思义,这个flag定义何时退出,当你定义了一个minHeight,这个view将在滚动到达这个最小高度的时候消失。...> 记住:我们刚才上面也说了AppBarLayout是一个竖直方向的线性布局,如果里面包含多个子View,要想有折叠动画效果,必须把带有scroll flag的view放在前面,这样收回的view才能让正常退出...parallax - 设置为这个模式,在内容滚动,CollapsingToolbarLayout中的View(比如ImageView)也可以同时滚动,实现视差滚动效果,通常和layout_collapseParallaxMultiplier...同理这是在展开Title文字特点外形的设置 app:contentScrim 这是toolbar 标题工具栏停留在顶部时候背景的设置 app:expandedTitleMarginStart 设置扩张时候

    2.3K90

    Android使用ViewPager快速切换Fragment卡顿的优化方案

    ViewPager切换到当前的Fragment,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即Fragment需要加载UI内容,而又频繁地切换Fragment,就容易产生卡顿现象...优化方案: 1.Fragment轻量化 如果ViewPager加载的Fragment都比较轻量,适当精简Fragment的布局,可提高Fragment加载的速度,从而减缓卡顿现象。...2.防止Fragment被销毁 ViewPager在切换的时候,如果频繁销毁和加载Fragment,就容易产生卡顿现象,阻止Fragment的销毁可有效减缓卡顿现象。...内容延迟加载 (1) 描述 在切换到当前Fragment的时候,并不立刻去加载Fragment的内容,而是先加载一个简单的空布局,然后启动一个延时任务,延时时长为T,当用户在该Fragment停留时间超过T,...这里我使用的做法是,给ViewPager增加一个OnPageChangeListener,,该监听器的onPageSelected(position)能监听ViewPager当前切换到哪个Fragment

    2.7K30

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

    对于大家关心的额外功能,则主要有以下几点: 1、支持响应主体页面的滑动行为,即在主体页面上移或者下拉,AppBarLayout能够捕捉到主体页面的滚动操作; 2、AppBarLayout捕捉到滚动操作之后...下面是AppBarLayout结合RecyclerView实现的工具栏向上滚动效果截图: ?...3、大家都知道ViewPager是左右滚动的翻页视图,用户通过手势把页面横向拉动一段距离后松开,系统会判断接下来是自动左滚还是自动右滚,总之最后用户看到的是一个完整的页面,而不是拉到一半的页面。...3、exitUntilCollapsed : 该标志保证页面上至少能看到最小化的工具栏,不会完全看不到工具栏。具体的滚动说明如下所示: 向上滚动:头部先往上收缩,一直滚到折叠的最小高度。...然后主体向下滚动,滚到位后头部继续向下展开。 5、snap : 在用户手指松开,系统自行判断,接下来是全部向上滚到顶,还是全部向下展开。

    2K40

    CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar-Android M新控件

    android:id="@+id/viewpager" android:layout_width="match_parent"...标记了layout_scrollFlags滚动事件,那么当LinearLayout滚动便可触发ToolBar中的layout_scrollFlags效果 即往上滑动隐藏ToolBar,下滑出现ToolBar...enterAlwaysCollapsed 当你的视图已经设置minHeight属性又使用此标志,你的视图只能已最小高度进入,只有当滚动视图到达顶部才扩大到完整高度 exitUntilCollapsed...滚动退出屏幕,最后折叠在顶端 【注意】: 设置了layout_scrollFlags标志的View必须在没有设置的View的之前定义,这样可以确保设置过的View都从上面移出, 只留下那些固定的View...贴一下ViewPager适配器代码: import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager

    2.1K30

    HorizontalScrollView

    一、概述、 水平滚动条 可以左右滑动 可与ViewPager协同使用 二、HorizontalScrollView里边只能放一个子元素 可以放一个Layout布局对象来盛放多个元素 里边可以设置指示器...ViewPager相应跳到对应的页面,ViewPager跳到指定页面导航栏也应该切换到对应的导航分类处 三、下面是实现的代码 1 package com.qf.viewpager02_horizontalscrollview...; 9 import android.support.v4.view.ViewPager; 10 import android.view.View; 11 import android.view.ViewGroup...void onPageScrolled(int position, float offset, int offsetPixels) { 75 // TODO 当页面滚动...Auto-generated method stub 86 } 87 }); 88 } 89 90 //选择导航模块的位置,将水平滚动控件滚动到当前模块位置的中心点

    47810

    android 自定义Viewpager实现无限循环

    5000; // 默认轮播时间 private int currentPosition = 0; // 轮播当前位置 private boolean isScrolling = false; // 滚动框是否滚动着...(position, true);   if (position == max) { // 最后一页回到第一页                             viewPager.setCurrentItem...在滚动             isScrolling = true;   return;           } else if (arg0 == 0) { // viewPager滚动结束...viewPager.setScrollable(enable);       }   /**      * 返回当前位置,循环需要注意返回的position包含之前在views最前方与最后方加入的视图...中,为了在进行滚动阻断父ViewPager滚动,可以 阻止父ViewPager滑动事件      * 父ViewPager需要实现ParentViewPager中的setScrollable方法

    3.3K70

    从零开始的Android:常见的UI设计模式

    如果您有多个在某种程度上相关但具有不同类别的列表,那么对每个类别使用带有选项卡的ViewPager可能是导航应用程序的有效解决方案。...工具列 您可能已经注意到,Android应用程序中的大多数页面在屏幕顶部都包含一个工具栏。...至少,该工具栏包含该部分或应用程序的标题,但是工具栏设计模式还有助于将操作按钮直接放置在工具栏或溢出菜单中,以允许用户在应用程序的该部分中执行任务。...用户可以在几行项目之间移动,然后水平滚动以查看他们可用的内容。 当用户找到要查看的项目,可以选择该项目以查看详细信息屏幕,该屏幕提供了该项目的操作列表。...在继续使用和学习Android,您将获得必要的经验,以了解在特定情况下什么是有效的,什么是无效的。

    2.7K20

    Android编程实现捕获程序异常退出的错误log信息功能详解

    本文实例讲述了Android编程实现捕获程序异常退出的错误log信息功能。...; import android.os.Build; import android.os.Environment; import android.os.Looper; import android.util.Log...Runnable() { @Override public void run() { Looper.prepare(); Toast.makeText(mContext, "很抱歉,程序出现异常,即将退出...更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android编程之activity操作技巧总结》...、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android文件操作技巧汇总》、《Android资源操作技巧汇总》及《Android控件用法总结》 希望本文所述对大家

    83520

    Android Scroller完全解析,关于Scroller你所需知道的一切

    其实说到ViewPager最基本的实现原理主要就是两部分内容,一个是事件分发,一个是Scroller,那么对于事件分发,其实我在很早之前就已经写过了相关的内容,感兴趣的朋友可以去阅读 Android事件分发机制完全解析...可以看到,当我们点击scrollTo按钮,两个按钮会一起向右下方滚动,因为我们传入的参数是-60和-100,因此向右下方移动是正确的。...重写computeScroll()方法,并在其内部完成平滑滚动的逻辑 那么下面我们就按照上述的步骤,通过一个模仿ViewPager的简易例子来学习和理解一下Scroller的用法。...startScroll()方法接收四个参数,第一个参数是滚动开始X的坐标,第二个参数是滚动开始Y的坐标,第三个参数是横向滚动的距离,正值表示向左滚动,第四个参数是纵向滚动的距离,正值表示向上滚动。...怎么样,是不是感觉有点像一个简易的ViewPager了?其实借助Scroller,很多漂亮的滚动效果都可以轻松完成,比如实现图片轮播之类的特效。

    1.6K60

    Android实现文字上下滚动效果

    关于Android实现文字上下滚动这个功能,我目前有两种方法实现: 一个是在TextView 中加上翻转的动画效果,然后设置循环滚动;一种是改写ViewPager滚动方向,使它从下到上进行滚动,...,这里可以使用ScheduledExecutorService,也可以使用 Timer几设置计时滚动,在更新UI的时候,调用Handler方法更新; 因为采用Timer执行定时任务只创建一个线程,...第二种方法实现的原理和轮播图的原理类似,轮播图一般是左右横向滚动,这里需要把ViewPager改成上下滑动,关于上下滑动的viewpager,可以在给github上找到; 其次轮播图中播放的是图片,...把图片换成文字即可; 然后同样调用Timer或者ScheduledExecutorService使ViewPager自行滚动; 以下是代码: package com.idea.idea.viewutils....view.PagerAdapter; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import

    5.9K20
    领券