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

实现一个带浮动标签的输入框

现在带浮动标签的输入框也是一个很常见的东西了,在材料设计里面有一个 TextInputLayout 的控件,我们可以用它实现这个效果。但是材料设计控件的样式比较固定,并不能满足我们产品设计的脑洞。...这里提供一个用属性动画实现的方法。 还是先看看效果吧: image.png 大概的思路是这样的: 控件有两层,一层是浮动的标签,一层是输入框。...当点击控件后,标签同时执行一个横向和纵向的缩放动画,还有一个向上移动的动画,让输入框获取到焦点并弹出键盘。 当输入框失去焦点时,判断是否有内容,如果没有则让标签执行一个复原的动画。...TextUtils.isEmpty(etContent.getText())) { animationDown(); } } }); 复制代码 这样就已经完成了一个带浮动标签的输入框...虽然实现一个这样的控件不难,但我个人还是希望可以使用原生控件的,希望移动端的设计能多去了解一下材料设计吧。(T_T)

1.3K10

JVM的方法区可以实现垃圾回收吗?

方法区和堆一样,都是线程共享的内存区域,被用于存储已被虚拟机加载的类信息、即时编译后的代码、静态变量和常量等数据。...根据Java虚拟机规范的规定,方法区无法满足内存分配需求时,也会抛出OutOfMemoryError异常,虽然规范规定虚拟机可以不实现垃圾收集,因为和堆的垃圾回收效率相比,方法区的回收效率实在太低,但是此部分内存区域也是可以被回收的...方法区的垃圾回收主要有两种,分别是对废弃常量的回收和对无用类的回收。 当一个常量对象不再任何地方被引用的时候,则被标记为废弃常量,这个常量可以被回收。...方法区中的类需要同时满足以下三个条件才能被标记为无用的类: Java堆中不存在该类的任何实例对象; 加载该类的类加载器已经被回收; 该类对应的java.lang.Class对象不在任何地方被引用,且无法在任何地方通过反射访问该类的方法...当满足上述三个条件的类才可以被回收,但是并不是一定会被回收,需要参数进行控制,例如HotSpot虚拟机提供了-Xnoclassgc参数进行控制是否回收。

1.4K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .NET中string类型可以作为lock的锁对象吗

    lock 关键字是用于在多线程编程中实现同步和互斥访问的关键字,它的作用是确保共享资源在任意时刻只能被一个线程访问,从而避免出现竞态条件(race condition)和数据不一致的问题,这篇文章主要介绍了...string类型可以作为lock的锁对象吗,需要的朋友可以参考下。...引用类型具有一个重要的特性,即它们在内存中具有唯一的地址。因此,能够使用引用类型作为锁对象,让多个线程通过共享同一个引用来实现同步。...因为值类型是每个实例独立存在的,它们在内存中具有不同的地址,这样就无法确保多个线程之间共享同一个锁对象。 使用引用类型作为锁对象可以解决这个问题。...多个线程可以通过使用相同的引用对象来获取锁的控制权,并且只有一个线程能够成功获取锁,其他线程将被阻塞。这样,就实现了所谓的互斥访问,确保了线程安全。

    19610

    你对Redis的使用靠谱吗?Redis的性能高,吗?Redis可以保证原子性,吗?用Redis可以实现事务,吗?用Redis可以当队列,吗?Redis适合用来做什么?

    而分布式事务的实现复杂度往往会超过Redis带来的好处。 用Redis可以实现事务,吗? 我们一般场景下说的事务的意思往往指的是数据库系统中的”ACID事务“。...有人说,AOF的appendfsync=everysec是可以持久化的。但这种持久化只在单机情况下有效。...在这种限制下,在Redis中实现业务逻辑差不多就只有两种可能: 不在意ACID事务——数据丢了没事,改错了也没大关系 基于Redis的接口实现自己的ACID,或者ACID的某种子集 缓存属于第一个场景。...用Redis可以当队列,吗? Redis实现了一个List的数据结构。借助它,可以实现出队,入队的功能。实际上很多人早就熟练使用Redis做队列。...这种队列可以容忍一些数据丢失,也能容忍数据延迟性比较大,但要求吞吐巨大。这种队列的典型代表是Fluentd和Logstash。

    3.8K110

    java深拷贝的实现方式_接口可以创建对象吗

    Cloneable接口与Serializable接口都是定义接口而没有任何的方法。Cloneable可以实现对象的克隆复制,Serializable主要是对象序列化的接口定义。...很多时候我们涉及到对象的复制,我们不可能都去使用setter去实现,这样编写代码的效率太低。JDK提供的Cloneable接口正是为了解决对象复制的问题而存在。...Cloneable结合Serializable接口可以实现JVM对象的深度复制。...{ return super.clone(); } Object类里的clone()方法仅仅用于浅拷贝(拷贝基本成员属性,对于引用类型仅返回指向改地址的引用) java.io.Serializable...1L,一个是随机生成一个不重复的 long 类型数据(实际上是使用 JDK 工具生成) // 如果没有特殊需求,就是用默认的 1L 就可以 static final long serialVersionUID

    1.5K10

    如果让 strpos 查找一个整数类型的数字会发生什么?

    每次数据来了,想要查找这个字符串中某个字符,上来就是使用strpos。strpos用于查找字符串中某个子串第一次出现的位置。 那么,如果不小心给strpos传入的是一个整数类型又会怎么样呢?...上面得到的是一个空字符串 查看php 源码中string.c的文件,找到strpos的代码。strpos对于非字符串类型的数据使用php_needle_char做了一次类型转换,强制类型转换。 ?...从 C 代码中可以看到,如果是整数类型,则强制转换成char类型。所以当你传入585的时候,使用char进行强转之后得到的结果是字符串"I",所以实际上截取之后的字符串长度为0。...char类型 4、对象则对对象id进行char的转换 5、其他类型触发E_WARNING的警告到这里就了解了为什么给一个整数,strpos会有意向不到的结果。...非字符类型进行一次数据类型转换,最终根据查找字符的长度在原始字符串中搜索位置。

    81120

    使用RNN的NLP —您可以成为下一个莎士比亚吗?

    RNN的数据集约束是它应该采用时间序列的形式。NLP是人工智能领域,使机器能够读取,理解和查找文本数据中的模式。...可以将文本中的字母转换为数字,并将其输入RNN模型中,以产生下一个可能的结果(诸如预测之类的声音,对吗?) RNN的变化 ?...该复位门是用来决定多少过去的信息忘记另一个门。 现在哪一个有好处?一个简单的RNN,LSTM,GRU?就像生活中的所有事物一样,没有什么是明确的。一切都取决于用例,数据量和性能。...Th 这种模式太好了! 结论 看到模型模仿了《罗密欧与朱丽叶》剧本的创作方式。注意提到字符的句子的开头。此外整个白话被复制。...这很可能与撰写评论的方式有关。大多数人的写作风格不同,这使得模型很难模仿散文。 将来,在查看推文时探索这种方法以及如何使用假推文实现这种模型将很有趣。但是为什么只发推文呢?

    99810

    业务用例的研究组织可以在同一个建设系统中可以变化吗

    2013-02-08 9:44:15 上孙安俊(359***041) 请问大家一个问题,业务用例的研究组织可以在同一个建设系统中可以变化吗?...2013-02-08 9:44:51 潘加宇(3504847) 没有必要变化了 2013-02-08 9:46:55 潘加宇(3504847) 这个划定的范围,能把你要改进的场景被包在里头就可以。...2013-02-08 9:51:42 潘加宇(3504847) 部门就可以了,把这些场景组织到部门的用例下面 2013-02-08 9:54:44 潘加宇(3504847) 既然改进的范围波及整个部门,...2013-02-08 10:14:41 上李帅(958**7) 意味着缺少了资源 2013-02-08 10:25:47 上孙安俊(359***041) 请假与加班是相对的,可以进行调休 2013-02...2013-02-08 11:11:15 潘加宇(3504847) 请假本身不是部门的用例,但会影响部门的某些用例的实现,把请假作为一个场景放在这些用例下面。

    2.7K30

    ChatGPT测评:它是一个好用的翻译工具吗?(Chatgpt哪里可以下载)

    测试方法 本文选取了《永劫无间》的四个不同类型的现有译文,包括技能描述、故事背景、动作描述和文学古风。...在翻译长句时,机器翻译可以熟练地运用各种状语和从句,将原文完整地表达出来,呈现出了一个较好的翻译结果。 但是,在需要主观判断时,有一些细微的不足。...而且用在此处“沈妙夸赞爷爷老当益壮”的语境下,也不合适。 神话典故 “鱼化龙”是中国古代的一个传说故事,讲述了一个普通的鲤鱼通过不断努力,最终成功地变成了一条神龙的故事。...,等待厨师下锅烹饪,方能做出美味菜肴,厨师的水平对最终结果影响较大; 而和Deepl等机器翻译工具相比,ChatGPT作为一个可以不断迭代和学习的模型,将来可以到达的程度可能是速食食品的水平,简单加热即可食用...不过可以预料到的是,ChatGPT未来可期! 未经允许不得转载:肥猫博客 » ChatGPT测评:它是一个好用的翻译工具吗?(Chatgpt哪里可以下载)

    3.1K120

    如何实现一个可以用 await 异步等待的 Awaiter

    为了实现异步等待,我们只需要在一切能够能够异步等待的方法前面加上 await 即可。能够异步等待的最常见的类型莫过于 Task,但也有一些其他类型。...问题就在于,有些“耗时”操作根本就无法放入后台线程,典型的莫过于“耗时”的 UI 操作。本文将通过实现一个适用于 UI 的可等待类型来解决这种 UI 的“耗时”等待问题。...某个函数的执行需要显示一个用户控件,用户填写控件中的信息并确定后,函数才继续执行。这种感觉很像模态窗口,但我们却是在同一个窗口内实现,不能通过模态窗口来实现我们的功能。...此类 A 有一个可被访问到的 GetAwaiter 方法(扩展方法也行,这算是黑科技吗?)...回顾一下,我们希望实现一个方法,要求能够在后台线程创建一个 UI 控件。 不使用自定义的 Awaiter,使用现有的 Task 可以写出如下代码: // 注:此处为试验代码。

    2.3K20

    实现一个线程安全且迭代器可以保存的链表

    这需要一个定时器模块,我看了下 Rust 现有的几种定时器的实现,大多是基于堆或树的结构的,没有找到jiffies定时器的实现,所以想自己实现一个算了。...这个定时器的实现又需要类似 C++ 的 std::list::iterator 的 插入和删除某个迭代器对其他迭代器没有影响 的特性,但是 Rust 的数据结构都不是这种设计模型。...所以就决定自己写一个吧。 为什么不使用现有的链表 像链表这种基础的数据结构,稍微现代化的语言肯定都是带的。...新链表的结构 从另一个角度说,我们需要的是能够保存迭代器,并在需要的时候基于迭代器操作。这本身是一个运行时可以修改容器的行为,属于运行时可变借用。...减少锁的临界区 可以看到我们实际节点的类型为 Arc>> , 中间还有一层 RwLock 。

    1.2K20

    实现一个线程安全且迭代器可以保存的链表

    这需要一个定时器模块,我看了下 Rust 现有的几种定时器的实现,大多是基于堆或树的结构的,没有找到jiffies定时器的实现,所以想自己实现一个算了。...这个定时器的实现又需要类似 C++ 的 std::list::iterator 的 插入和删除某个迭代器对其他迭代器没有影响 的特性,但是 Rust 的数据结构都不是这种设计模型。...所以就决定自己写一个吧。 为什么不使用现有的链表 像链表这种基础的数据结构,稍微现代化的语言肯定都是带的。...所以我们这个链表节点本身,其实对于所有的类型 T 都可以支持 Send 语义。但是访问实际数据的层面还是需要可以 Sync 才能跨线程读的。...减少锁的临界区 可以看到我们实际节点的类型为 Arc>> , 中间还有一层 RwLock 。

    67920

    SAS-一个小程序实现变量类型的自动转化~

    做为标题党的小编,一贯喜欢将标题写很大...嗯,最近写了一个小程序,虽然是一个没有任何技术含量的程序,不过还是想分享给大家。...这个程序实现的功能是将SAS数据集中数值型变量转换成字符型变量,如果变量含有format,这时会将显示的format的值直接赋值给新的变量。 一个小功能 写这个宏的功能与目的是啥呢。...在利用export输出csv,excel时,我们输出的总是数据存储的实际值,而很多时候需要呈现format显示的值。...所以我就写了这个小程序, 基本一点技术含量都没有,就用了sql定义宏变量的方式,然后一个vvalue函数,最近感觉爱上这个函数了...下面看代码 /***************************...参数注释部分应该已经说的很清楚了...不过还是用一个例子来证明一下Macro是没有问题的,大家请放心使用...

    1.2K20

    探索类型系统的底层 - 自己实现一个 TypeScript(硬核干货)

    语言服务器将类型系统连接到 IDE,它们可以在后台运行编译器,并在用户保存文件时重新运行。流行的语言,如 TypeScript 和 Flow 都包含一个语言服务器。 3....生成源代码 将 AST 转换为 JavaScript 源代码字符串 类型系统必须将任何非 js 兼容的 AST 映射回原生 JavaScript。 类型系统如何处理这种情况呢?...现在令人兴奋的是,我们自己也要实现一个编译器。 B 部分:构建我们自己的类型系统编译器 我们将构建一个编译器,它可以对三个不同的场景运行类型检查,并为每个场景抛出特定的信息。...我们将其限制在三个场景中的原因是,我们可以关注每一个场景中的具体机制,并希望到最后能够对如何引入更复杂的类型检查有一个更好的构思。 我们将在编译器中使用函数声明和表达式(调用该函数)。...对于 GenericTypeAnnotation; 如果是一个对象,我们将在 AST 中查找 InterfaceDeclaration 节点,然后检查该接口上调用者的每个属性。

    1.3K40

    如何实现一个可以动态配置腾讯云安全组的接口?

    1.指定IP放行且不说大部分人都没有固定IP,有了固定IP也是在固定的场所,这样也不是很方便。2.代理IP放行一个自己常用的代理IP,每次通过连接这个代理IP来操作。...这种还行,但是估计代理IP就得让不少人放弃。...3.动态接口腾讯云官方提供了操作服务器安全组相关的API,通过这些API接口,我们可以实现一个自己的接口,比如:https://nicen.cn/app.php?...提示以上例子均为不存在的接口,仅用于演示简单实现以下是基于PHP简单实现的一个接口,使用方法跟上面的例子是一样的。..."); // 实例化一个client选项,可选的,没有特殊需求可以跳过 $clientProfile = new ClientProfile(); $clientProfile->setHttpProfile

    7310

    天天都在用的 Nginx,可你知道如何用一个反向代理实现多个不同类型的后端网站访问吗?

    比较好的策略应该是让 Nginx 来判断当前的 Host 是什么来决定跳转到哪一个后端的 Webserver 上,比如: a.mip.com 就跳转到 Apollo,j.mip.com 就跳转到 Jenkins...以此类推,这样就可以完美解决了。 一个完整的演示实例 为了实现上面的需求,在 Nginx 中你完全可以使用 Rewrite 模块下 if 指令来完成。...然后通过 $host 系统变量判断当前的 URL 中的 host 的值来实现跳转到相应的网站。...从上图中,我们可以看到通过不同域名成功的访问到了不同的后端应用。...# root html; # index index.html index.htm; # } #} } 至此,我们就演示完了一个反向代理实现多个不同类型的后端网站访问的场景

    3.8K31

    RocketMQ,同一个topic下是否可以通过不同的tag来进行订阅吗?

    针对以上问题,有两个场景:使用阿里云的云服务器的RocketMQ和使用自己搭建的RocketMQ。但无论采用这两种的任何一种,都是可以在同一个topic下,通过tag来进行业务区分的。...自主搭建的RocketMQ 通过自主搭建RocketMQ,然后通过SpringBoot进行集成实现,可以参考在公众号【程序新视界】中的文章《Spring Boot快速集成RocketMQ实战教程》,可关注公众号搜索...针对同一的topic,另外一个tag的消费者的实现如下: @Service @RocketMQMessageListener(topic = MqTopicConstant.DEMO_TOPIC...那么解决方案就是:初始化多个ConsumerBean,每个ConsumerBean中的配置不同的groupId和tag,同时注册不同的监听器。 如此一来,就可以监听一个topic下的不同tag了。...原文链接:《RocketMQ,同一个topic下是否可以通过不同的tag来进行订阅吗?》

    5K10

    企业微信可以集成单位内网部署的网盘系统实现账号打通吗?

    插句题外话,我发现很多中小微企业客户都喜欢使用企业微信平台,因为可以更好地和私域流量连通,建立企业员工和顾客之间的长期联系。由于企业微信本身提供较多的免费服务,对中小微企业来说吸引力十足。...有些客户单位内部已经有一些建设好的IT系统,或者采购并部署在内网的第三方系统,他们也很希望这些系统能与企业微信平台实现账号打通并集成到企业微信工作台上。答案自然是可行的。...因此企业微信平台非常重视生态建设,不光引入了大量的第三方ISV开发商围绕企业微信平台进行开发和连接,也通过自建应用的机制实现了互联网服务与企业内部信息化系统的连接打通。...这里提到的打通分为两种场景,一种是简单的页面集成,一种是账号连接实现单点登录。...例如我的另外一个客户他们使用的企业文档管理系统就可以通过简单的配置即可实现一键登入,用户无需记忆密码,IT管理员也无需开发代码,效果如下: 如果是企业自己开发的系统,可以查阅 企业微信开发者中心:企业内部开发

    1.3K40

    一个类实现多个接口的同名方法会报错吗?

    这样有问题吗Collection接口中有个size()方法, List接口中也有一个size()方法....,要不要去重写方法都不会报错但是通用来说, 抽象类的作用就是,要有一个通用的实现,所以一般来说,还是实现方法比较好, 然后再抛一个抽象的具体实现, 如下所示: /** * @author lixiang...*/ @Override public void doCheer() { System.out.println("加油加油"); }} 在这里可以看到,虽然我们也实现了...Greet接口,但是因为AbstractGreet 已经实现过了接口,所以这里就不用再实现接口的cheer方法, 只需要实现抽象类的doCheer()方法就可以了,当然也可以实现 @Override...这里还有一个比较有趣的现象,就是在idea中, 要重写方法时, 提示的是覆写抽象类的,而不是接口的,如下图所示: 报错的场景 上面都是正确的,其实有一种报错的场景要注意, 就是当两个不同的接口定义的方法签名不一致的时候

    1.2K20
    领券