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

项目需求讨论 — 用Transition做一个漂亮登录界面

前言 一次在逛Github时候,看到一个漂亮登录界面,用是Transition做就直接贴上地址: MaterialLogin 当然,如果单纯直接拿过来用,没有任何意义。...(); } }); 复制代码 直接调用finish()方法的话,你就会发现,没有fab键返回动画,而是直接第二个activity关闭,显示第一个activity见面。...会调用退出动画效果后再finish(); 参考文章: 最常用ActivityonBackPressed()与finish()区别....所以我们知道了,我们点击fab键返回时候不能直接finish,而是最后一步是调用super.onBackPressed();。...//然后fab键会执行动画回到原始位置,然后第二个Activity关闭

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

Android-使用Intent传递数据

(); 还是构建了一个Intent,不过这个Intent仅仅用于传递数据而已, 没有指定任何“意图”,把要传递数据存放在Intent中,调用setResult()方法, 专门用于向上一个活动返回数据...,接收两个参数, 第一个参数用于上一个活动返回处理结果,一般使用RESULT_OK和RESULT_CANCELED, 第二个参数把带有数据Intent传递回去。..., 第二个参数resultCode,即我们返回数据时传入处理结果, 第三个参数data,即携带着返回数据Intent。...如果在SecondActivity中不是通过按钮点击返回,而是按下Back键, 可以在SecondActivity中重写onBackPressed()方法解决问题: @Override public..."); setResult(RESULT_OK,intent); finish(); }

1.1K30

Android | Jetpack 处理回退事件新姿势 —— OnBackPressedDispatcher

概述 OnBackPressedDispatcher 解决了什么问题: 在 Activity 里可以通过回调方法 onBackPressed() 处理,而 Fragment / View 却没有直接回调方法...如果最后事件没有被消费,则交回到 Activity#onBackPressed() 处理。...如果最后事件没有被消费,则交回到 Activity#onBackPressed() 处理。...通过观测以上 App 实际效果,梳理出以下 4 种退出 App 实现方式: 1、系统默认行为: 将回退事件交给系统处理,而系统默认行为是 finish() 当前 Activity,如果当前 Activity...() 方法 另外,finish() 还有一些类似的 API,可以补充了解下: finishAffinity():关闭当前 Activity 任务栈中,位于当前 Activity 底下所有 Activity

1.4K20

Android Studio finish()方法使用与解决app点击“返回”(直接退出)

“当你打开Activity已经执行完成并且需要被关闭时候可以调用这个方法,当你按返回时候,它将返回到当前Activity发起者。” (不过这一段不是很理解,还是相信自己实践吧。)...一、问题提出 2019年十二月,遇到了一个问题。...点击返回结果是:C→B→A,然而我要当需求是“点击返回,直接从C跳转到A”。结果显然,这不符合产品需求。 为此,用了finish()函数来解决这个问题。...这是因为有一个Activity多次回跳问题没有解决,同时还有一个问题是,在于主界面中点击返回按钮后,会直接退出app,这样用户体验非常不好,为了保持体验一致性,索性将二级activity(竹海明珠...、洪崖丹井等等)全部设置finish(),这样的话,只要在二级及以上页面中,只要点击了返回按钮就会直接退出APP,但用户可以在自定义左上角back按钮返回activity界面。

5K10

Android 双击退出程序但活动不结束功能!

本片博客将详细介绍: Android 活动中  onKeyDown()   onKeyUp()   onBackPressed()  三个方法关系及使用 最后给出实现双击退回桌面的源码实例 ----...所以,见名知意: onKeyDown 就是按下按键意思, onKeyUp 就是松开按键意思, onBackPressed 就是返回键被点击意思。...() 方法 ---- 我们接着看 onBackPressed() 方法 我们可以看到,在 onBackPressed() 方法中,又调用了 finishAfterTransition() 方法 很明显该方法作用就是结束丹铅活动...,就返回 false,我们当然不希望在执行系统代码,是的活动又被 finish() 调,所以我们这里返回 true。...这就是自己理解,如果有错误的话欢迎大家在评论区指出~

64620

Android startActivityForResult用法

大家好,又见面了,是你们朋友全栈君。...一、介绍 当我们在第一个Activity打开第二个Activity时,第二个Activity关闭并想返回数据给第一个Activity时,我们就可以使用startActivityForResult进行传值...resultCode, Intent data) { String result = data.getExtras().getString("result");//得到新Activity 关闭后返回数据...,新Activity关闭前需要向前面的Activity返回数据需要使用系统提供setResult(int resultCode, Intent data)方法实现: public class OtherActivity...button需要在onClick里面实现/直接按Back键返回,需要重写onBackPressed方法 setResult()方法第一个参数值可以根据业务需要自己定义,上面代码中使用到RESULT_OK

34120

安卓入门-第二章-探究活动

作为你导师,有义务帮你制定好后面的学习路线,那么今天我们应该从哪儿入手呢?现在你可以想象一下,假如你已经写出了一个非常优秀应用程序,然后推荐给你第一个用户,你会从哪里开始介绍呢?...存在有一序列回调方法来启动一个活动,同时有一序列方法来关闭活动,如下面的活动声明周期图所示: ?...另外需要注意,如果你应用程序没有声明任何一个活动作为主活动,这个程序仍然是可以正常安装,只是你无法在启动器中看到或者打开这个程序。...那么有没有什么办法可以让某个活动在整个应用程序上下文中只存在一个实例呢?这就要借助singleTask模式来实现了。...finish() 我们确保了活动调用了onDestroy方法后活动已经关闭,故没必要将其放置于链表中,所以进行移除链表操作,并且虽然即使不移除,可能也不会有空指针报错,但是在某个活动中调用ActivityCollector.finishAll

2.9K20

AndroidStdio1_5

既然可以传递数据给下一个活动,那么能不能够返回数据给上一个活动呢?答案是肯定。 不过不同是,返回上一个活动只需要按一下Back键就可以了,并没有一个用于启动活动Intent来传递数据。...finish()方法来销毁当前活动。...没错,不过这种情况还是很好处理,我们可以通过在SecondActivity中重写onBackPressed()方法来解决这个问题,代码如下所示: ?...这样的话,当用户按下Back键,就会去执行onBackPressed()方法中代码,我们在这里添加返回数据逻辑就行了。...而每当我们按下Back键或调用finish()方法去销毁一个活动时,处于栈顶活动会出栈,这时前一个入栈活动就会重新处于栈顶位置。系统总是会显示处于栈顶活动给用户。

61130

笔记64 | 个人项目“易来”开发记录《二》处理Fragment中返回问题

需求描述 问题: 一个WebView放在Fragment中,我们都知道webView有一个goBack()方法,可以通过该方法对网页进行后退处理,由于Fragment本身并没有监听onBackPressed...方法,又处于一个Activity中,Activity除又对后退进行了3秒确定退出处理,所有导致 Fragment中WebView无法进行goBack(); 需求: 需要在Fragment中监听到返回键...,当WebView可以后退网页时候,进行后退网页,当没有可后退网页时(首页状态),点击返回调Activity中onBackPressed方法; 处理方案 这位大神方案大神讲得通俗易懂,对来说难度稍大...framelayout3.onBackPressed()) { backPress(); } } public void backPress()...{ if (SystemClock.uptimeMillis()-mTickForShow<3000) { finish(); }else{

54280

Android学习笔记,不断更新

销毁当前活动 按一下Back()键,或使用: finish(); Java中Context上下文 简单理解Context ​ “环境”、“容器”,承上启下。...就是说,它描述一个应用程序环境信息(即上下文);是一个抽象类,Android提供了该抽象类具体实现类;通过它我们可以获取应用程序资源和类(包括应用级别操作,如启动Activity,发广播,接受Intent...,还可以启动其他程序活动,这使得Android 多个应用程序之间功能共享成为了可能。...方法接收两个参数,第一个参数还是Intent ,第二个参数是请求码(只要是一个唯一值就可以),用于在之后回调中判断数据来源。...通过按下Back键向上传递 ​ 重写onBackPressed ()方法来解决这个问题,当用户按下Back 键,就会去执行onBackPressed ()方法中代码: Main2Activity.java

1K40

android学习笔记----隐式意图和显式意图

隐式意图和显式意图: 显式意图:显式意图明确指明了启动活动上下文和想要启动目标活动,显式意图明确指定了Intent应该传递给哪个组件。 隐式意图:没有明确指定组件名Intent为隐式意图。...在用户关闭这个Activity后,将已输入用户名、密码等个人信息 传回主界面Activity中并进行显示。...由于在一个活动中有可能调用startActivityForResult()方法去启动很多不同活动,每一个活动返回数据都会回调到onActivityResult()这个方法中,因此我们首先要做就是通过...你应该有干坏事嗜好吧?"); } else if (score > 20) { tv_result.setText("杀过人没有?放过火没有?...消息提示框,然后清空界面上已输入数据,并准备接受下一次输入; (b) 当点击“全部显示”按钮时,界面跳转到下一个界面(第二个Activity),这该界面中显示前面已多次输入“姓名、年龄和身高”数据

1.2K10

Android中方法数超限问题与启动优化详解

multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.1' } 然后,如果你没有写自己...,有可能导致ANR API Level 14之前,由于Dalvik LinearAlloc bug(问题22586,就是上文提到LinearAlloc问题),很可能会出问题 应用程序使用了multiedex...配置,会造成使用比较大内存 对于应用程序比较复杂,存在较多library项目。...针对加载 Dex 问题,美团技术团队是这样做:精简主 Dex 包,应用启动起来后再异步加载第二个 Dex 包。这是一个很不错想法,但是实现起来有一定难度。...微信开发团队思路实现起来也比较简单,下面直接上代码(顺便把启动体验也优化了~): Application 中 attachBaseContext 方法: @Override protected

65830

Android开发笔记(六十四)网页加载与JS调用

第二个参数表示媒体类型,如"text/html";第三个参数表示数据编码格式,"base64"表示采用base64编码,其余值(包括null)表示url编码。 loadUrl : 加载url。...浏览器应用场景 1、点击返回键返回上个页面,可监听返回键按下事件,具体有两种方式,分别是重写onBackPressed函数,以及重写onKeyDown函数。...可在WebViewClientonPageStarted方法中弹出进度对话框ProgressFialog,然后在onPageFinished方法中关闭进度对话框。...词条: “PhoneGap是一个用基于HTML,CSS和JavaScript,创建移动跨平台移动应用程序快速开发平台。...使用PhoneGap只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样,但是你仍然需要为每个平台分别编译应用程序。”

6.3K10

Fragment响应onBackPressed三个方案

经常会碰到Fragment需要响应activityonBackPressed事件,对比下三个不同方案 方案1 - 也是之前用过 activity在收到onBackPressed事件后,问下对应fragment...,你要不要拦截啊,你要是拦截,就不管了,你不要拦截就自己处理了,代码如下 一个FragmentA,有个public方法,定义自己是否拦截 class FragmentA : Fragment()...事件后,调用下fragmentA判断方法,如果fragment有处理,就交给fragment处理,没有的话,就调用super.onBackPressed方法,关闭activity class ActivityA...,但是系统这个实现,有个难以接受地方,最终使抛弃使用了 先看下系统内部实现代码 @MainThread public void onBackPressed() {...完全不符合实际场景 真实场景一般是fragment走到特定逻辑了,就需要拦截,没有走到就不拦截,或者随着不同业务,会动态不断变化,而Android X设计是,必现提前告诉它们,要不要拦截 在需要拦截时候

1.8K10
领券