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

如何在android中添加显示和隐藏actionbar的动画?

在Android中,可以通过使用属性动画来实现显示和隐藏ActionBar的动画效果。下面是一个实现的示例代码:

  1. 首先,在你的布局文件中,确保你已经添加了ActionBar,例如:
代码语言:xml
复制
<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
  1. 在你的Activity中,获取ActionBar的实例,并创建显示和隐藏动画的方法:
代码语言:java
复制
private ActionBar actionBar;
private ObjectAnimator showAnimator;
private ObjectAnimator hideAnimator;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // 获取ActionBar实例
    setSupportActionBar(findViewById(R.id.toolbar));
    actionBar = getSupportActionBar();

    // 创建显示动画
    showAnimator = ObjectAnimator.ofFloat(actionBar, "translationY", -actionBar.getHeight(), 0);
    showAnimator.setDuration(200);

    // 创建隐藏动画
    hideAnimator = ObjectAnimator.ofFloat(actionBar, "translationY", 0, -actionBar.getHeight());
    hideAnimator.setDuration(200);
}
  1. 现在,你可以在需要显示或隐藏ActionBar的地方调用这些动画方法了。例如,你可以在滚动事件中根据滚动方向来触发动画:
代码语言:java
复制
private int previousScrollY = 0;

@Override
public void onScrollChanged() {
    int scrollY = getScrollY();

    if (scrollY > previousScrollY) {
        // 向下滚动,隐藏ActionBar
        hideActionBar();
    } else {
        // 向上滚动,显示ActionBar
        showActionBar();
    }

    previousScrollY = scrollY;
}

private void showActionBar() {
    if (actionBar != null && actionBar.getTranslationY() < 0) {
        showAnimator.start();
    }
}

private void hideActionBar() {
    if (actionBar != null && actionBar.getTranslationY() == 0) {
        hideAnimator.start();
    }
}

这样,当你向上滚动时,ActionBar会显示出来,向下滚动时会隐藏起来,同时会有一个平滑的动画效果。

请注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。此外,还可以使用其他动画效果,例如淡入淡出、缩放等,以实现更多样化的ActionBar动画效果。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,建议你在腾讯云官方网站上查找相关产品和文档,以获取更详细的信息。

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

相关·内容

SwiftUI:视图显示隐藏动画

SwiftUI最强大功能之一是能够自定义视图显示隐藏方式。以前,您已经了解了如何使用常规if条件有条件地包含视图,这意味着当条件更改时,我们可以从视图层次结构插入或移除视图。...转换控制插入删除方式,我们可以使用内置转换,以不同方式组合它们,甚至创建完全自定义转换。...首先,我们添加一些可以操作状态: @State private var isShowingRed = false 接下来,我们使用该状态作为显示矩形条件: if isShowingRed {...在“true”“false”之间切换: self.isShowingRed.toggle() 如果你运行程序,你会看到按下按钮显示或者隐藏红色方块。...没有动画;它只是突然出现消失。

4.4K30

Android开发软键盘显示隐藏

而很多关键逻辑代码,都是在 InputMethodManagerService 实现。 特别说明:本文所有分析源码,都是基于 Android 26 源码。...而这不是绝对,如果不是一个 EditText ,就必须要求这个 View 有两个属性,分别是:android:focusable="true" android:focusableInTouchMode...2.4 切换键盘弹出隐藏 在 InputMethodManager ,还提供了一个 toggleSoftInput() 方法,如同它名字一样,它可以让软键盘在显示隐藏之间切换。 ?...这里会根据显示隐藏传递两个 flag 来进行比对,也就是说,如果 flag 使用不正确,可能导致这里直接返回 false ,从而无法隐藏软键盘,这些细节对照代码就清晰了,就不在文章里屡这些细节了。...在这个方法,是根据 isInputViewShow() 方法来判定当前软键盘是否处于显示弹出状态。

2.5K10

何在keras添加自己优化器(adam等)

\Anaconda3\envs\tensorflow-gpu\Lib\site-packages\tensorflow\python\keras 3、找到keras目录下optimizers.py文件并添加自己优化器...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...super(Adamsss, self).get_config() return dict(list(base_config.items()) + list(config.items())) 然后修改之后优化器调用类添加我自己优化器...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

44.9K30

聊一聊如何在 Vue3 表单显示隐藏元素

介绍 在处理表单时,根据所选选项,显示隐藏各种字段是很常见。我将使用Vue来有条件地显示隐藏表单元素。在这个例子,我将使用SFC(单文件组件)以便于我们使用。...type="checkbox" v-model="addAComment"> 更新Javascript: const addAComment = ref(); 现在在 checkbox 添加一个...需要注意是, v-show v-if 在控制元素可见性方面具有相似的作用,但它们之间存在一些关键区别: v-show :该元素始终在DOM呈现,但其CSS显示属性在none原始值(例如block...、inline等)之间切换,以显示隐藏它。...这使得频繁在可见隐藏状态之间切换元素更加高效。 v-if :在DOM,元素是有条件地创建或销毁。当条件为false时,元素将从DOM完全移除。

64830

Android实现系统状态栏隐藏显示功能

比如: 1、在AndroidManifest.xml文件修改theme为android:theme=”@android:style/Theme.NoTitleBar.Fullscreen” 2、在setContentView...方法 4、通过如下代码实现状态栏隐藏显示: getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //隐藏状态栏 getWindow...().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //显示状态栏 在我项目中是要实现如下需求:在当前Activity,切换到横屏后,...(测试手机:华为荣耀8 系统是基于Android 7.0EMUI 5.0;三星galaxy s6 系统是Android 6.0) 最后,使用方法4,成功满足需求。...总结 以上所述是小编给大家介绍Android实现系统状态栏隐藏显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。在此也非常感谢大家对ZaLou.Cn网站支持!

4.1K40

Android Bitmap截取及状态栏隐藏显示功能

Bitmap是Android系统图像处理中最重要类之一。Bitmap可以获取图像文件信息,对图像进行剪切、旋转、缩放,压缩等操作,并可以以指定格式保存图像文件。...2.需要分享图片长这个样子,底部状态栏、标题栏底部按钮全部隐藏,接下来我就用最笨方法开始操作了 ?...,x,y值增加了多少,相应width,height就要减去多少,这步操作以后,就得到第二步效果。...PS:下面看下Android 显示隐藏状态栏实例代码 Android 显示隐藏状态栏,小说阅读界面要用到 /** * 显示隐藏状态栏,全屏不变,只在有全屏时有效 * @param enable...Bitmap截取及状态栏隐藏显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

1.1K10

ListView上滑下滑,显示隐藏Toolbar实现方法

1.准备Toolbar 先隐藏系统自带actionbar,在AndroidManifest.xml文件<application 标签android:theme="@style/Theme.AppCompat.Light.NoActionBar..." (注意此处Activity应继承AppCompatActivity) 再在布局文件添加Toolbar,activity_main.xml文件: <?...;//将控件与动画联系起来类(可以使指定控件,实现指定动画效果) private boolean mShow;//toolbar是否显示 @Override protected void onCreate...;在用户滑动过程(MotionEvent.ACTION_MOVE),记录用户当前手指Y坐标;两者比较可以判断出用户手指滑动方向; (3)使用 ObjectAnimator类控制Toolbar动画效果...以上这篇ListView上滑下滑,显示隐藏Toolbar实现方法就是小编分享给大家全部内容了,希望能给大家一个参考。

1.1K20

笔记53 | 管理系统UI(一)

Bar API 指南 Android Design Guide 本课程将教您如何在不同版本Android隐藏状态栏。...在大多数情况下,你可以在布局文件添加 android:fitsSystemWindows标签,设置它为true。...同步状态栏与Action Bar变化 在Android 4.1及以上版本,为了防止在Action Bar隐藏显示时候布局发生变化,你可以使用Action Baroverlay模式。...这个操作也同时隐藏了Action Bar(因为 windowActionBarOverlay="true"),当同时显示隐藏ActionBar与状态栏时候,使用一个动画来让他们相互协调。...隐藏导航栏 这节课将教您 在4.0及以上版本隐藏导航栏 让内容显示在导航栏之后 本节课程将教您如何对导航栏进行隐藏,这个特性是Android 4.0()版本引入

1.4K40

Android开发全屏背景显示方案

引子     不管是Android还是iOS平台中,都可以看到一些应用在启动时候会先出现一个启动画面(Splash Activity),QQ、微信等。...这个启动画往往会将ActionBarStatus Bar隐藏掉,然后用户进入一种沉浸状态,形成更强烈视觉冲击。...一方面,这可以给用户留下更深刻使用体验,从而产生一定品牌效应;另一方面,也给应用启动初始化留下了充裕时间,避免因为启动时间过长而给用户留下不良印象。因此,全屏显示在手机应用得到了广泛应用。...那么这篇博客中就记录下全屏显示一些实现方案。 实现 方案一:给布局管理器设置背景图片。这种方案是通过设置android:backgroundNoActionBar主题来实现。 1 <!...WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 方案二、在FrameLayout添加一个全屏子视图

2.6K50

actionbar完全解析(一)

添加移除Action Bar ActionBar添加非常简单,只需要在AndroidManifest.xml中指定Application或Activitytheme是Theme.Holo或其子类就可以了...添加Action按钮 ActionBar还可以根据应用程序当前功能来提供与其相关Action按钮,这些按钮都会以图标或文字形式直接显示ActionBar上。...则指定了该按钮显示位置,主要有以下几种值可选:always表示永远显示ActionBar,如果屏幕空间不够则无法显示,ifRoom表示屏幕空间够情况下显示ActionBar,不够的话就显示在...让Overflow选项显示图标 如果你点击一下overflow按钮去查看隐藏Action按钮,你会发现这部分Action按钮都是只显示文字不显示图标的,如下图所示: ?...这是官方默认效果,Google认为隐藏在overflowAction按钮都应该只显示文字。

1K100

Android开发笔记(七十四)布局文件优化

如果还想再次隐藏显示布局,只能通过setVisibility来实现。...举个ViewStub实际运用场景,手机屏幕在竖屏横屏切换时,有时希望显示不同布局,比如竖屏显示列表,横屏则显示网格,横竖屏截图如下: 竖屏列表方式界面截图 ?...代码设置主题可通过“setTheme(R.style.***)”完成,布局设置可在AndroidManifest.xmlactivity节点下添加theme属性,android:theme="...Android定义了一些系统主题,完整定义参见sdk自带themes.xml,常用几种说明如下: Theme.NoTitleBar : 不显示标题栏,即隐藏ActionBar Theme.Light...,下面是个布局添加主题例子: android:theme="@android:style/Theme.Dialog" 除了系统自带主题样式,我们也可以在themes.xml自定义主题,

1.2K30
领券