首页
学习
活动
专区
圈层
工具
发布

【Android】用户登录界面设计

这里的思路其实也很好理解,我们把勾选框右侧的文本中的“《用户协议》”这几个字符进行特殊处理即可 二:代码展示 1:xml布局 这个超链接的时候会触发CheckBox的监听,这明显是不太合理的 上面这段代码非常折磨,我们慢慢一点一点分析,啃下来,加油 3:思路 ①获取CheckBox中的文本 ②设置一个监听事件...String类型的静态文本;这一步其实就是把“普通的字符串”包装成一个“富文本容器”,这样后续就可以通过spannableString.setSpan(...)方法,对这个容器当中的某一段文字(通过 start...SpannableString 就是专门用来解决这个问题的:先把普通字符串包装成 SpannableString ,再给局部加效果,最后设置回控件显示,就能实现 “富文本” 效果。...onClick方法 如果不设置这个方法,虽然文本会显示为超链接样式(如下划线、蓝色),但点击时不会触发任何事件,而是将点击事件传递给 CheckBox 本身(导致勾选状态变化)。

10100

真·富文本编辑器的演进之路-Span的整体性控制

着色 首先,我们来实现普通文本的变色功能,做一个蓝色的字色,这个比较简单,可以使用ClickableSpan或者其它Span来着色,为了方便我们富文本的输入和展示,这里直接选择ClickableSpan...控制选中 在讲解如何在普通文本中对Span做整体性控制前,我们先来考虑下选择的问题——如何让「整体性Span」的内部无法被选中。 首先,我们要知道,Edittext的光标也是一种Span。...那么问题来了,我要怎么监听Edittext的光标呢?...其实,Android的Span不仅功能非常强大,而且也提供了非常完善的管理API,在TextView和Edittext中,我们要监听Text的变化过程,可以使用TextWatcher,它可以在文本发生改变时进行回调...向大家推荐下我的网站 https://xuyisheng.top/ 点击原文一键直达 专注 Android-Kotlin-Flutter 欢迎大家访问 往期推荐 flutter与compose的爱恨情仇

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

    TextView AutoLink, ClikSpan 与长按事件冲突的解决

    为什么会这样呢,且听下文分析。(不想看源码分析的也可以直接跳过该部分,直接看 解决思路 , 不过建议还是看一下源码分析过程,以后遇到类似的问题,我们能够举一反三。)...这里说一下我的思维,大概分为以下三步: TextView 是如何解析 autolink 的 autolink 的 onclick 事件是在哪里响应的 autolink 的 onclick 事件是在哪里被调用的...TextView 是如何解析 autolink 的 这个问题比较简单,写过自定义控件的人都知道,一般是从 xml 解析的,这里也不例外。...ClickableSpan 的 onClick 方法是在 ACTION_UP 事件中调用的 知道了 ClickableSpan 的 onClick 方法是在 ACTION_UP 事件中调用的,下面让我们一起来看一下怎样解决...TextView 中 autolink 与 clickableSpan 与长按事件的冲突。

    2.1K20

    TextView

    文本控件 显示富文本(URL、不同大小、字体、颜色的文本) 在TextView中预定义了一些类似HTML标签(不区分大小写),通过这些标签,我们可以使TextView控件显示不同的颜色、大小、字体的文字...属性来实现 名称 描述 none 不匹配任何链接(默认值) web 匹配Web网址 email 匹配Email phone 匹配电话号码 map 匹配映射地址 all 匹配所有的连接 ---- Demo...tagHandler:TagHandler对象,这个参数使用的并不多。当系统处理每一个标签的时候都会调用该对象的handleTag方法,如果不是用该参数,可以设置为null....在Android中,Span表示一段文本的效果,例如链接形式,图像,带颜色的文本等。 所有的Span类都在android.text.style包中。...第四个参数是一个标志,在本例中设置成了Spanned.SPAN_EXCLUSIVE_EXCLUSIVE,该标志在TextView中的意义不大,单在EditText控件中表示的含义:在当前Span效果的前后输入字符串时并不应用

    1.9K20

    Android实现类似QQ对话框的@他人的整体解决方案

    在我们公司的新版APP中社区板块有个在回复回帖中有个@他们的功能,基本需求和QQ群组对话框里@群或组里任何一个成员类似。而数据传输方面,选择了直接传输富文本格式的数据让后台解析出@的对象。...@了两个用户后的效果图 我大学最开始写代码的时候,我的大学老师告诉我要把代码功能模块一步步拆分出来,首先我们应该完成@UserName(空格)的整体最为一个对象,并在用户选择想要@的对象后最为一个整体并变色呈现在编辑框里...接着是点击不了@UserName(空格)之间的的字符,删除也是同理。这个就是整体性要求。 1....@UserName(空格)的整体呈现 最开始的设想是用一个富文本编辑器,但是了解了富文本编辑器基础知识后感觉没必要实现一个富文本编辑器在APP中,而只需要自定义一个Span类就可以满足需求,而Android...从源码中找解决需求可能就是完成这个功能的心得吧。包括后面从服务器获取的富文本数据还原成Span对象也还是从Android源码中Html类中的写法活得启发完成的。如果有相关问题可以加我的微信问我。

    59350

    【Android】强大的SpannableStringBuilder

    也许你会这么说 如果我告诉你,这个页面中只用了一个TextView呢 ?你没看错!只有一个TextView,没别的!!!...SPAN_INCLUSIVE_EXCLUSIVE:前面包括,后面不包括,即在文本前插入新的文本会应用该样式,而在文本后插入新文本不会应用该样式 Spannable....SPAN_INCLUSIVE_INCLUSIVE:前面包括,后面包括,即在文本前插入新的文本会应用该样式,而在文本后插入新文本也会应用该样式 Spannable....: 文本字体 URLSpan : 文本超链接 ClickableSpan : 点击事件 用法 先在xml中创建一个TextView: <TextView android:id...想知道什么问题?自己去试试看,哈哈哈~~ 这边有一个我在CSDN上看到的解决方法,可以从另一个角度来解决这个问题。——解决方案 组合使用 当然,上面的这些用法都能组合使用。来个?

    2.6K120

    浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应

    ,有响应的点击事件进行处理,你该如何实现?...既然我们知道了如何实现一个TextView显示不同的颜色,那么还有一个问题就是如何实现点击 同一个TextView不同部分的文字进行相应的响应操作 现在就学习: ClickableSpan 源码很短,...,这个类到底有什么实际的使用呢?...那么我们是不是可以用ClickableSpan类来实现 一个TextView显示不同颜色的文字并且点击相应的位置会有对应的响应事件的效果呢   问题来了,我们Demo中确定了一个TextView从哪些位置到哪些位置是有颜色或者点击事件的...,但是实际项目中,我们并不确定 评论人 和 被评论人的 用户昵称的长度,那么该怎么办呢 ?

    2.2K60

    浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应

    ,有响应的点击事件进行处理,你该如何实现?...既然我们知道了如何实现一个TextView显示不同的颜色,那么还有一个问题就是如何实现点击 同一个TextView不同部分的文字进行相应的响应操作 现在就学习: ClickableSpan 源码很短,...,这个类到底有什么实际的使用呢?...那么我们是不是可以用ClickableSpan类来实现 一个TextView显示不同颜色的文字并且点击相应的位置会有对应的响应事件的效果呢   问题来了,我们Demo中确定了一个TextView从哪些位置到哪些位置是有颜色或者点击事件的...,但是实际项目中,我们并不确定 评论人 和 被评论人的 用户昵称的长度,那么该怎么办呢 ?

    1.2K40

    腾讯开源超实用的UI轮子库,我是轮子搬运工

    在 item 右侧显示一个开关或箭头或自定义的View QMUIDialog 提供了一系列常用的对话框,解决了使用系统默认对话框时在不同 Android 版本上的表现不一致的问题。...QMUI 用于 QMUITabSegment 中 Tab 与数据的适配。...QMUISpanTouchFixTextView 相比 TextView,修正了两个常见问题: 修正了 TextView 与 ClickableSpan 一起使用时,点击 ClickableSpan...修正了 TextView 默认情况下如果添加了 ClickableSpan 之后就无法把点击事件传递给 TextView 的 Parent 的问题。...最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android

    5.5K30

    android 特色输入输出

    学习内容 Ø Android中的手势识别 Ø Android中的语音朗读 能力目标 Ø 熟练掌握如何通过手势缩放图片 Ø 掌握手势文件的创建方法及技巧 Ø 熟练掌握如何通过手势输入字符串 Ø 熟练掌握如何通过手势调用程序...,这样也就解决了挤占屏幕空间的问题。...在事件处理代码中我们需要注意,在匹配信息中有一个score字段,该字段表示匹配程序,即用户绘制的手势和手势库中手势的相似性。一般当该字段的值大于1时就可认为与手势匹配。...6.1.4 通过手势调用程序 学过了前面的知识之后,有过智能手机使用经验的同学一定会问到,在Android中我们如何像在IPhone中一样通过手势调用自己的应用程序呢?...程序最终运行效果如下图6.1.5所示,其中上方是一个id为editText的文本输入框,用户可以通过这个输入框输入想要朗读的内容;下方是一个id为button的按钮,当我们单击【朗读文本】按钮时,模拟器会将我们在

    34510

    Android富文本开发

    对于上面两个问题,这个位置可以取光标所在的位置,但是对于一个EditText输入文本,插入图片这个位置可以分多种情况: 如果光标已经顶在了editText的最前面,则直接插入图片,并且EditText下移即可...这个具体可以看代码逻辑。 08.利用Span对文字属性处理 这里仅仅是对字体加粗进行介绍,其实设置span可以找到规律。多个span样式,考虑到后期的拓展性,肯定要进行封装和抽象,具体该如何处理呢?...android定义了一个属性,名字为windowSoftInputMode, 这个属性用于设置Activity主窗口与软键盘的交互模式,用于避免软键盘遮挡内容的问题。...如果能通过代码主动将软键盘收起,这对于用户体验来说,是一个极大的提升,思前想后,参考网上的文档,个人比较喜欢的实现方式是通过事件分发机制来解决这个问题。...但是对于设置富文本的标签,类型,作者,封面图,日期,其他关联属性怎么合并到html中呢,这个相对麻烦。

    9.4K20

    【Android】EditText使用和监听

    三三想成为安卓糕手 一:用户登录校验 1:EditText文本输入框 EditText android:id="@+id/et_user_name" android...设置用户名的输入类型为number,那么调用出来的键盘如下左图所示(为数字键盘),输入框不接收输入非数字的内容 设置密码的输入类型为textPassword,那么该屏幕界面会被隐藏,并且做了一个加密的处理...成员变量 private EditText etUserName; private EditText etPassword; initEditText(); //这个方法的调用应该在登录监听器触发之前...}else{ //准备弹窗提示 Toast.makeText(CheckBoxActivity.this, "用户名与密码不匹配...参数相同 CharSequence s 代表文本变化时(初始内容) EditText 里原本的文字内容为“adin”,那s = adin int start 表示文本中即将发生变化的起始位置索引 删除了

    10510

    微博的文本编辑和显示(emoji表情,@某人、链接高亮点击)

    = new HashMap(); 将文本作为一个正则匹配的项,然后作为一个key存入到Map中,对应关联表情的图片资源R.drawable.xxx。...因为考虑到字数限制还有大小问题,下面还有对应参数,大小一般我设置的是20dp(够大了吧= =),插♀入的时候注意当前的光标位置哟,而Android的文本输入框一般对于ImageSpan 的回退都是整个删除的...这里使用的是通过CharSequence 生成一个新的Spannable ,对这个Spananle进行key的正则匹配一个一个替换需要显示为表情的文本。...()); return spannableString; } EditTextAtUtils 处理@某人的逻辑 这里需要实现的在编辑文本框中需要实现的@某人显示,类似微博Android...未能实现的是复制的时候微博可以整个复制,不能复制其中文字,如果有知道实现的大神留言指导下~ (臣妾不知道如何入♀手啊.....((/- -)/) 好了,开始说实现方法吧: 1、输入文本中的文本格式为

    2.4K20

    Android开发笔记(一百三十八)文本输入布局TextInputLayout

    文本输入布局TextInputLayout TextInputLayout是MaterialDesign库中对编辑框EditText进行增强的一个控件。...TextInputLayout便是用来解决提示文字的显示问题,它默认把提示文字显示在编辑框的上方,这样在编辑框内输入文字,就不影响上方的提示文字了。...这个好坑,既然出现问题,就想办法解决它,解决办法如下所示(以下方案任选其一): 1、在布局文件中给EditText控件设置maxLength属性,指定允许输入字符串的最大长度。...> 文本输入编辑框TextInputEditText TextInputEditText是Android6.0后新加的编辑框控件,它的用法跟EditText没什么区别,之所以鼓捣这么一个新控件,是为了解决一个小小的问题...所以呢,TextInputEditText与EditText的唯一区别就是,横屏时输入文字,是否会在编辑框内显示提示文字。

    2.6K30

    Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展

    这个需求又产生了两个问题: 1)当普通文本发生变化后,如何监控一个Span起始位置发生变化? 2)如何禁止Span内部插入光标? 对于第一个问题,我在网上看到过一种思路。...第二个问题,我们要保证文本与数据的一致性,禁止光标插入到Span覆盖的文本中间。...那我们能不能把它放在setText()之后设置呢?如果你这么做,你会发现一个新问题。setText()添加的文本没有效果。...我要重新找回这个轴承。 4.3 让轮子优雅实现的轴承:Editable.Factory SelectionSpanWatcher在setText()方法中消失了。我需要去阅读它的源码。...它是在什么时候,如何完成的转换呢?它会不会是一个突破口?

    2.5K30

    Android软键盘输入处理技巧

    因此,了解如何监听软键盘输入是非常重要的。 如何监听软键盘输入 在Android中,我们可以使用EditText的TextWatcher接口来监听软键盘输入。...) { // 在文本改变后执行的操作 } }); 通过TextWatcher接口,我们能显示层进行输入监听,但如果我们需要在软键盘操作的过程中就监听用户的输入行为,又该如何实现呢...下面我们就来说说这个实现方式。 InputConnection 在Android开发中,InputConnection是一个用于与软键盘交互的接口。...它允许应用程序与用户输入进行交互,并处理输入文本的各种操作,如插入、删除和替换文本。 InputConnection 是 Android 软键盘系统和 EditText 控件之间的桥梁。...下面是如何将 MyInputConnection 与 EditText 控件关联的示例: import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection

    90910

    Activity 的临时数据储存

    一个Android项目程序一定会存在多个 Activity ,在Activity对象的切换过程中,难免会有一些Activity对象被系统回收,那么,这个Activity中的数据也会消失,打个比方:...一个Activity中存在一个EditText输入框,输入到一半的时候跳出另一个界面,而不巧的是这个存在EditText的界面刚好被系统回收了。...那么再次启动这个Activity的时候EditText的数据又得重新输入,这是极大的影响用户的体验的。那么我们该如何解决这个问题呢。...onDestroy() { Log.i("MainActivity", "onDestroy"); super.onDestroy(); } } 之后,启动程序,在文本编辑框中输入几个字符...MainACtivity中的EditText开始时的状态为什么也没有: ? 在EditText中随便输入几个字符,并且将模拟器换了方向之后: ?

    1.4K30

    RxBinding详解: 规范而强大的安卓UI响应式编程

    对大多数开发者来说,用这样的方式来实现UI响应即费时又易出错。非常幸运的是,RxBinding 这个库可以帮我们解决前面的问题,而且使用起来非常简单。 什么是RxBinding?...更细微的控制 在前面的例子中,我使用RxTextView.textChanges()方法仅仅对文本改变作出响应。...在传统Android中,我们必须实现整个TextWatcher才行,这会多出许多行没必要的代码,因为你还得实现beforeTextChanged方法与 afterTextChanged方法。...让我们来看一下这个例子: 假设你想察看一个EditText输入文字时文本的变化(查看指定类型的数据)。...在下面的这个例子中,我将使用share()操作方法来实现对点击事件的多次监听: Button b = (Button) v.findViewById(R.id.do_magic); Observable

    3.2K40

    【谷歌官方文档】1.1 建立第一个APP

    在下一节的教程中你将学会如何定义字符串资源,到时候就不会报错了。 资源对象 资源对象是与 APP 资源(如:位图、布局文件、字符串)关联的唯一整数。...所以,请永远不要修改这个文件。 参阅 资源配备。 注:该字符串资源与 ID 使用了相同的名称(edit_message)。...这个按钮不需要指定 android:id 的属性,因为 Activity 代码中不会引用该 Button。...LinearLayout 使用 权重 属性达到这个目,即 android:layout_weight 属性。 权重的值指的是每个部件所占剩余空间的大小,该值与同级部件所占空间大小有关。...sendMessage方法)与在android:onClick属性中提供的方法名字匹配,它们的名字必须一致,特别需要注意的是,这个方法必须满足以下条件: 是public函数 无返回值 参数唯一(为View

    3K20
    领券