type
status
date
slug
summary
tags
category
password
icon
这里写文章的前言:暂无
📝 罕见的View的属性
duplicateParentState
作用于子View,可以让子View的状态始终与父View相同
例如:父View获取焦点时,子View也需要获取焦点,可以给子View添加duplicateParentState属性,子View就能自动同步父View的状态,就不需要在代码里手写同步了
Binder机制
Activity几种启动模式
- standard:标准模式,默认 每启动一个Activity,都会创建一个新的实例
- singleTop:Task 栈顶复用模式 当要启动的目标 Activity 已经位于栈顶时,不会创建新的实例,会复用栈顶的 Activity,并且其 onNewIntent() 方法会被调用,如果目标 Activity 不在栈顶,则跟 standard 一样创建新的实例。
- singleTask:Task 栈内复用模式 在同一个任务栈中,如果要启动的目标 Activity 已经在栈中,则会复用该 Activity,并调用其 onNewIntent() 方法,并且该 Activity 上面的 Activity 会被清除,如果栈中没有,则创建新的实例。
- singleInstance:全局单例模式 会启用一个新的返回栈来管理这个活动。
原生的比较好看动画的API
makeScaleUpAnimation
android.app.ActivityOptions#makeScaleUpAnimation
是一个在 Android 开发中用于创建自定义 Activity 转场动画的方法。这个方法允许你指定一个动画,其中新的 Activity 从一个屏幕上的小起始区域开始,然后逐渐放大到它的最终全屏表示。以下是该方法的基本用法和参数说明:- 方法定义:
public static ActivityOptions makeScaleUpAnimation(View source, int startX, int startY, int width, int height)
- 参数:
source
:View
- 新 Activity 动画的起始视图,这定义了startX
和startY
的坐标空间。startX
:int
- 新 Activity 相对于source
的 x 起始位置。startY
:int
- 新 Activity 相对于source
的 y 起始位置。width
:int
- 新 Activity 的初始宽度。height
:int
- 新 Activity 的初始高度。
- 返回值:
- 返回一个新的
ActivityOptions
对象,你可以使用这个对象作为选项 Bundle,通过startActivity(Intent, Bundle)
和相关方法启动 Activity 时传递这些选项。
这个方法通常用于实现从某个特定的视图开始的转场效果,例如,你可能希望当用户点击一个按钮时,新的 Activity 从按钮的位置开始放大出现。使用
makeScaleUpAnimation
可以创建这种效果,从而提供更加丰富和吸引人的用户体验。如果你需要在 Android 5.0 以下版本使用类似功能,可以使用
ActivityOptionsCompat
类,它是 ActivityOptions
的兼容版本,提供了相同的方法和功能,以支持旧版本的 Android 系统- 作者:shuouyang
- 链接:https://notion-tree.vercel.app/article/5331307c-85f9-4d7d-b257-1a13abb4b611
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。