Android 实现阅读用户协议的文字控件效果

这篇具有很好参考价值的文章主要介绍了Android 实现阅读用户协议的文字控件效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开发中,经常要用到一些阅读隐私协议的场景,原生的textview控件很难做到在一个控件里有两个点击事件,那现在就来安利一个强大的组件——SpannableStringBuilder。

先看看效果:

Android 实现阅读用户协议的文字控件效果,android

 直接上代码,布局文件:

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="40dp"
        android:paddingRight="40dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:text="我已阅读并同意" />

        <TextView
            android:id="@+id/login_rule"
            android:layout_width="wrap_content"
            android:text="《用户协议》、"
            android:layout_height="wrap_content"/>

    </LinearLayout>

布局文件很容易理解,一个checkbox实现选中效果,旁边加一个textview。

在activity中;

private TextView mLoginRule;

通过findviewbyid获取控件id后

    private void setRule() {
        SpannableStringBuilder span = new SpannableStringBuilder();
        span.append("隐私协议").append("、").append("用户协议");

        ClickableSpan clickableSpan = new ClickableSpan() {
            @Override

            public void onClick(@NonNull View view) {
                ToastUtils.show("隐私政策");
            }

        };

        ClickableSpan clickableSpan2 = new ClickableSpan() {
            @Override

            public void onClick(@NonNull View view) {
                ToastUtils.show("用户协议");
            }

        };

        span.setSpan(clickableSpan,0,4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        span.setSpan(clickableSpan2,5,9, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);


        mLoginRule.setText(span);
        mLoginRule.setMovementMethod(LinkMovementMethod.getInstance());

    }

代码很容易理解,重点讲讲setSpan,这里第一个参数定义了响应点击事件的方法,第二个就是文字的开头角标,第三个是文字结尾角标,第四个表示不包含start和end所在的端点  (star,end)

setSpan(clickableSpan,0,4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

注意

 mLoginRule.setMovementMethod(LinkMovementMethod.getInstance());

很关键,否则无法响应点击事件文章来源地址https://www.toymoban.com/news/detail-610253.html

到了这里,关于Android 实现阅读用户协议的文字控件效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android开发之自定义控件-组合控件的开发与实现

    最终实现的效果展示图:   类似支付宝微信,底部分隔线对齐标题效果:       完整渲染显示效果(包含三个条目右边不同颜色的文字): 立体效果:  隐藏资产总额条目右边更多箭头  隐藏中国历史条目右边的文字: 隐藏中国历史条目下边的分隔线: 隐藏条目2中国历史左

    2024年02月10日
    浏览(41)
  • Xamarin.Android实现界面自动添加控件

    有时需要在APP中动态的添加控件,因此记录下在Xamarin中的实现步骤。 VS2022社区版 UI的代码如何 活动中的代码如下: 工程代码 界面中添加控件,就是通过 AddView 方法实现的,方法有如下的重载版本: 参数 child 就是要添加的控件元素; LayoutParams 代表待添加元素的样式。但也

    2024年02月15日
    浏览(38)
  • Android 妙用TextView实现左边文字,右边图片

    原文: Android 妙用TextView实现左边文字,右边图片 - Stars-One的杂货小窝 有时候,需要文字在左边,右边有个箭头,我个人之前会有两种做法: 使用线性布局来实现 或者使用约束布局,一个左对齐,一个右对齐 这几天突然想到是否可以使用TextView的设置图标的方式实现,研究发现确实可以

    2024年02月17日
    浏览(46)
  • Android 实现跑马灯效果

    Android中实现跑马灯效果有多种方式,本篇简单介绍下: 1: TextView属性实现 这里需要注意下: 需要限制textview的宽度,不能设置为wrap_content 启动跑马灯效果需要获取焦点requestFocus(). 2: 代码实现 3: 自定义 view实现 这里可以使用动画的效果实现. 4: 实现竖直效果的跑马灯

    2024年01月18日
    浏览(56)
  • Android实现超出固定行数折叠文字“查看全文“、“收起全文“

    网上有很多关于这个的代码,实现都过于复杂了,github上甚至还看到一篇文章600多行代码,结果一跑起来全是bug。还是自己写吧!!! 如果我们需要换行的 \\\"查看全文\\\"、\\\"收起全文\\\" 效果那没什么号说的,因为可以直接用两个TextView然后通过判断超过行数还是没有超过行数来判

    2024年02月13日
    浏览(28)
  • Android UI - 实现广告Banner轮播效果,Android MVP模式详解

    android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_marginTop=“10dip” android:layout_gravity=“bottom|center_horizontal” android:layout_marginBottom=“10dp” android:gravity=“center” View android:id=“@+id/v_dot0” style=“@style/dot_style” android:background=“@drawable/dot_focused” android:vi

    2024年04月13日
    浏览(46)
  • Android集成Unity,实现3D看房效果

    前几天有人找小编问能不能把3D模型放入到Unity中,再把Unity放入到Android APP中,在APP中实现观看房屋家具的功能,这次小编便来分享一下吧,如果还需要了解Android 集成Unity知识的,可以翻我主页其他文章 Android3D观看房屋家具效果演示 Unity 3D官网 Android Studio官网 3D模型官网 如

    2024年02月11日
    浏览(38)
  • Android 实现用户登陆界面

    Button是TextView的一个子类,EditView同样也是TextView的子类 其中,EditView是一个可输入内容的组件 参考属性文档 :包含EditText控件的常用属性 常用基本属性介绍: 属性 含义 textAllCaps 设置字体大小写,android:textAllCaps=\\\"false\\\"表示字体显示和输入的内容一致 hint 设置文本框初始显示

    2024年02月07日
    浏览(37)
  • Android修行手册 - 使用ViewPager2实现画廊效果

    Unity3D特效百例 案例项目实战源码 Android-Unity实战问题汇总 游戏脚本-辅助自动化 Android控件全解手册 再战Android系列 Scratch编程案例 软考全系列 Unity3D学习专栏 蓝桥系列 ChatGPT和AIGC 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、工具、素材、源码、游戏等

    2024年02月22日
    浏览(44)
  • Android CoordinatorLayout+AppBarLayout顶部栏吸顶效果的实现

    1.控件简介。 CoordinatorLayout遵循Material 风格,包含在 support Library中,结合AppbarLayout, CollapsingToolbarLayout等 可 产生各种炫酷的折叠悬浮效果。     作为最上层的View     作为一个容器与一个或者多个子View进行交互     CoordinatorLayout is intended for two primary use cases: As a top-level a

    2024年02月04日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包