ConstraintLayout简介

Android中的ConstrainLayout的用法(上) 手把手教你学Android之Android中的ConstrainLayout的用法(上) 阅读详情

ConstraintLayout简介

ConstraintLayout从发布到现在也得有两年的时间了,但是目前在项目中却很少用到他。今天闲下来记录一下,以后可以用来解决一些布局的嵌套问题。
ConstraintLayout是RelativeLayout的升级版本,但是比RelativeLayout更加强调约束,它能让你的布局更加扁平化,一般来说一个界面一层就够了。
而且它可以直接在布局编辑页面通过拖拖拖的方式就可以把控件摆放好,但是我还是习惯手写。

在Android Studio中可以很方便的将目前的布局直接转换成ConstraintLayout,可以在布局的编辑页面上直接右键然后选择就可以了。

当然项目中要添加它的依赖,目前最新版本:

implementation 'com.android.support.constraint:constraint-layout:1.1.0'

然后会提示添加ConstraintLayout支持库。

相对于传统布局ConstraintLayout在以下方面提供了一些新的特性:

  • 相对定位

    这个和RelativeLayout比较像,就是一个控件相对于另一个控件的位置约束关系:

    • 横向:Left、Right、Start、End
    • 纵向:Top、Bottom、Baseline(文本底部的基准线)

      <Button android:id="@+id/buttonA" ... />
      <Button android:id="@+id/buttonB" ...
          // 这样系统就会知道B的左侧被约束在A的右侧
          app:layout_constraintLeft_toRightOf="@+id/buttonA" />

      常用的有:

      * layout_constraintLeft_toLeftOf          // 左边左对齐
      * layout_constraintLeft_toRightOf         // 左边右对齐
      * layout_constraintRight_toLeftOf         // 右边左对齐
      * layout_constraintRight_toRightOf        // 右边右对齐
      * layout_constraintTop_toTopOf            // 上边顶部对齐
      * layout_constraintTop_toBottomOf         // 上边底部对齐
      * layout_constraintBottom_toTopOf         // 下边顶部对齐
      * layout_constraintBottom_toBottomOf      // 下边底部对齐
      * layout_constraintBaseline_toBaselineOf  // 文本内容基准线对齐
      * layout_constraintStart_toEndOf          // 起始边向尾部对齐
      * layout_constraintStart_toStartOf        // 起始边向起始边对齐
      * layout_constraintEnd_toStartOf          // 尾部向起始边对齐
      * layout_constraintEnd_toEndOf            // 尾部向尾部对齐
      
      

      上面的这些属性需要结合id才能进行约束,这些id可以指向控件也可以指向父容器(也就是ConstraintLayout),比如:

      <Button android:id="@+id/buttonB" ...
          app:layout_constraintLeft_toLeftOf="parent" />
  • 外边距

    * android:layout_marginStart
    * android:layout_marginEnd
    * android:layout_marginLeft
    * android:layout_marginTop
    * android:layout_marginRight
    * android:layout_marginBottom
    // 这里的gone margin指的是B向A添加约束后,如果A的可见性变为GONE,这时候B的外边距可以改变,也就是B的外边距根据A的可见性分为两种状态。
    * layout_goneMarginStart
    * layout_goneMarginEnd
    * layout_goneMarginLeft
    * layout_goneMarginTop
    * layout_goneMarginRight
    * layout_goneMarginBottom
    
    
  • 居中和倾向

    • 居中
      在RelativeLayout中我们可以centerHorizontal等来进行居中操作,但是在ConstraintLayout中没有类似的方法。

      <android.support.constraint.ConstraintLayout ...>
      <Button android:id="@+id/button" ...
          app:layout_constraintLeft_toLeftOf="parent"
          app:layout_constraintRight_toRightOf="parent/>
          <android.support.constraint.ConstraintLayout/>

      这种情况就感觉像是控件两边有两个反向相等大小的力在拉动它一样,所以才会产生控件居中的效果。

    • 倾向
      在这种约束是同向相反的情况下,默认控件是居中的,但是也可以像拔河一样,让两个约束的力大小不等,这样就产生了倾向,其属性是:

      * layout_constraintHorizontal_bias
      * layout_constraintVertical_bias

      下面这段代码就是让左边占30%,右边占70%(默认两边各占50%),这样左边就会短一些,如图5所示,此时代码是这样的:

      <android.support.constraint.ConstraintLayout ...>
          <Button android:id="@+id/button" ...
              app:layout_constraintHorizontal_bias="0.3"
              app:layout_constraintLeft_toLeftOf="parent"
              app:layout_constraintRight_toRightOf="parent/>
      <android.support.constraint.ConstraintLayout/>
  • 可见性的表现

    ConstraintLayout对可见性被标记View.GONE的控件(后称GONE控件)有特殊的处理。一般情况下,GONG控件是不可见的,且不再是布局的一部分,但是在布局计算上,ConstraintLayout与传统布局有一个很重要的区别:

    • 传统布局下,GONE控件的尺寸会被认为是0(当做点来处理)
    • 在ConstraintLayout中,GONE控件尺寸仍然按其可见时的大小计算,但是其外边距大小按0计算
  • 尺寸约束

    ConstraintLayout本身可以定义自己的最小尺寸:

    • android:minWidth设置布局的最小宽度
    • android:minHeight设置布局的最小高度

    这些最小尺寸当ConstraintLayout被设置为WRAP_CONTENT时有效。

    控件的尺寸可以通过android:layout_width和android:layout_height来设置,有三种方式:

    • 使用固定值
    • 使用WRAP_CONTENT
    • 使用0dp(相当于MATCH_CONSTRAINT)

    为什么不用MATCH_PARENT呢? 这是因为:

    Important: MATCH_PARENT is not supported for widgets contained in a ConstraintLayout, though similar behavior can be defined by using MATCH_CONSTRAINT with the corresponding left/right or top/bottom constraints being set to “parent”.

    比例
    这里的比例指的是宽高比,通过设置比例,让宽高的其中一个随另一个变化。为了实现比例,需要让控件宽或高受约束,且尺寸设置为0dp(也可以是MATCH_CONSTRAINT),实现代码如下:

    <Button android:layout_width="wrap_content"
        android:layout_height="0dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintDimensionRatio="1:1" />

    上述代码中,按钮的高度满足受约束且设置为0dp的条件,所以其尺寸会按照比例随宽度调整。

    比例的设置有两种格式:

    • 宽度与高度的比,可理解为受约束的一方尺寸:另一方尺寸
    • 受约束的一方尺寸/另一方尺寸得到的浮点数值
  • Chain

    Chain是一系列双向连接的控件连接在一起的形态(可以理解成一个包含几个子View的LinearLayout)
    横向上,Chain头部是Chain最左边的控件;纵向上,Chain头部是Chain最顶部的控件。

    Chain样式:
    当对Chain的第一个元素设置layout_constraintHorizontal_chainStyle或layout_constraintVertical_chainStyle属性,
    Chain就会根据特定的样式(默认样式为CHAIN_SPREAD)进行相应变化,样式类型如下:

    • CHAIN_SPREAD元素被分散开(默认样式)
    • 在CHAIN_SPREAD模式下,如果一些控件被设置为MATCH_CONSTRAINT,那么控件将会把所有剩余的空间均分后“吃掉”
    • CHAIN_SPREAD_INSIDE:Chain两边的元素贴着父容器,其他元素在剩余的空间中采用CHAIN_SPREAD模式
    • CHAIN_PACKED:Chain中的所有控件合并在一起后在剩余的空间中居中

    image

    带权重的Chain:
    默认的Chain会在空间里平均散开。如果其中有一个或多个元素使用了MATCH_CONSTRAINT属性,那么他们会将剩余的空间平均填满。
    属性layout_constraintHorizontal_height和layout_constraintVertical_weight控制使用MATCH_CONSTRAINT的元素如何均分空间。
    例如,一个Chain中包含两个使用MATCH_CONSTRAINT的元素,第一个元素使用的权重为2,第二个元素使用的权重为1,
    那么被第一个元素占用的空间是第二个元素的2倍。

  • 辅助工具

    android.support.constraint.Guideline该类比较简单,主要用于辅助布局,即类似为辅助线,横向的、纵向的。
    该布局是不会显示到界面上的。

    所以其有个属性为:android:orientation取值为vertical和horizontal.

    除此以外,还差个属性,决定该辅助线的位置:

    • layout_constraintGuide_begin
    • layout_constraintGuide_end
    • layout_constraintGuide_percent

    可以通过上面3个属性其中之一来确定属性值位置。begin=30dp,即可认为距离顶部30dp的地方有个辅助线,
    根据orientation来决定是横向还是纵向。end=30dp,即为距离底部。percent=0.8即为距离顶部80%。

    好了,下面看一个例子,在一个布局的右下角添加浮点按钮,我决定通过两根辅助线来定位,一根横向距离底部80%,一个纵向距离顶部80%,浮点按钮就定位在他们交叉的地方。

    <android.support.constraint.ConstraintLayout 
        ...
        tools:context="com.zhy.constrantlayout_learn.MainActivity">
        <android.support.constraint.Guideline
            android:id="@+id/guideline_h"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            app:layout_constraintGuide_percent="0.8" />
        <android.support.constraint.Guideline
            android:id="@+id/guideline_w"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.8" />
        <TextView
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:background="#612"
            app:layout_constraintLeft_toRightOf="@id/guideline_w"
            app:layout_constraintTop_toBottomOf="@id/guideline_h" />
    </....>

ConstraintLayout究竟有什么用呢?

ConstraintLayout允许您构建复杂的布局,而不必嵌套View和ViewGroup元素。
它可以有效地解决布局嵌套过多的问题。我们平时编写界面,复杂的布局总会伴随着多层的嵌套,而嵌套越多,
程序的性能也就越差。ConstraintLayout则是使用约束的方式来指定各个控件的位置和关系的,
它有点类似于RelativeLayout,但远比RelativeLayout要更强大。
ConstraintLayout在测量/布局阶段的性能比 RelativeLayout大约高40%。


更多文章请查看AndroidNote

你的star是我的动力!!!

Android ConstraintLayout 基础 首先,在 Android 项目的布局 XML 文件中,将根布局设置为。 阅读详情

相关推荐

高通ISP模块全解析:从Raw到JPEG的18个关键处理步骤(附避坑指南)

本文全面解析高通ISP模块从Raw到JPEG的18个关键处理步骤,涵盖原始数据预处理、色彩科学处理链、画质增强与降噪等核心环节。通过实战调优经验,揭示ISP架构中的技术原理与工程实践要点,帮助开发者避免常见问题,提升移动影像处理质量。

weixin_30399155的博客 360

ContraintLayout布局总结

参考资料 ConstraintLayout 完全解析

ti_an_1989的专栏 998

ArcMap新手必看:Shape属性中的点ZM值到底是什么?如何快速处理

本文深入解析ArcMap中Shape属性中的点ZM值,揭示其在GIS数据中的隐藏维度作用,包括Z值(高程值)和M值(测量值)。针对ZM值可能引发的服务发布问题,提供三种高效处理方案,帮助新手快速掌握数据导入时的ZM值管控策略及精准去除方法。

weixin_42561476的博客 432

约束布局ConstraintLayout看这一篇就够了

目录 1.介绍 2.为什么要用ConstraintLayout 3.如何使用ConstraintLayout 3.1 添加依赖 3.2 相对定位 3.3 角度定位 3.4 边距 3.5 居中和偏移 3.6 尺寸约束 3.7 链 4.辅助工具 4.1 Optimizer 4.2 Barrier 4.3 Group 4.4 Placeholder 4.5.Guideline 5.总结 1.介绍 约...

weixin_34167819的博客 3668

攻克JESD204B多ADC同步:从时钟对齐到数据对齐的实战解析

本文深入解析了JESD204B多ADC同步的系统性挑战与实战解决方案。从确保设备时钟同源、精确捕获SYSREF信号,到管理接收端弹性缓冲区与释放点,文章提供了从时钟对齐到数据对齐的完整调试路径与排查清单,是攻克高速数据采集系统中多片ADC同步难题的实用指南。

weixin_29231725的博客 198

「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐

软件成分分析(Software Composition Analysis,SCA)是一种用于识别和分析软件内部组件及其关系的技术,旨在帮助开发人员更好地了解和管理其软件的构建过程,同时可帮助安全人员揭秘软件内部结构的神秘面纱。SCA技术的发展与软件行业的快速发展密不可分,下面将介绍SCA的发展背景、技术原理以及当前主流SCA工具。

所有成功的背后,都是痛苦的坚持,所有的痛苦,都是傻瓜般的不放弃! 5638

Android软件设计规范---命名规则/代码包设计规则等

如果你将源码作为产品发布,就需要确认它是否被很好地打包并且清晰无误,一如你已构建的其他任何产品。 作为软件设计师,代码即是产品;不仅需要实现功能,还需有“优美、大方”的外表。 标识符命名法,标识符命名法最主要有4种: 1、驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。 2、帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写...

weixin_30508309的博客 329

别再手搓SVG了!用Vue3+SVG.js快速搭建电力系统拓扑图(附完整代码)

本文介绍了如何利用Vue3和SVG.js实现电力系统拓扑图的低代码开发,通过组件化和响应式数据绑定,大幅提升开发效率。文章详细解析了SVG.js的核心功能,包括图形创建链式API、动态属性绑定和高级图形操作,并提供了断路器组件的完整实现代码。此外,还分享了性能优化策略和调试技巧,帮助开发者应对大规模拓扑图的挑战。

weixin_27717759的博客 354

ConstrainLayout 基础教程3,Android开发前景怎么样

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:text="@string/warehouse" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="par.

m0_61331407的博客 273

054_小驰私房菜_Camx i2c读写相关备忘

Camera 对Ae、Af这些控制,实际都是,最终实际都是落实到hal下发相关的指令给驱动,那hal这边是怎么给驱动下发相关命令的呢?#小驰私房菜054# #Qcom Camx#可以参考看下下面相关代码内容。

152

把静态前端托管进 SAP BTP:HTML5 Application Deployer 与企业级内容部署全攻略

本文介绍了在SAP BTP Cloud Foundry环境中使用HTML5 Application Repository托管前端静态资源的工程化实践。通过HTML5 Application Deployer工具,结合MTA描述、路由配置和服务实例,实现前后端解耦和标准化部署。文章详细阐述了目录结构、关键配置文件、MTA编排以及构建部署流程,并针对大体积前端资源提供了GACD和异步上传两种解决方案。最后说明了如何与AppRouter协同工作,使部署内容可供终端用户访问。这套方法使前端更新无需重启后端,支持团队

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 158

ConstraintLayout 从入门到精通

Android开发中,ConstraintLayout是一种强大且灵活的布局容器,它通过约束(Constraints)定位UI组件,减少嵌套层级,提升性能。本教程全面介绍了其用法: 核心优势 扁平化布局:减少嵌套,优化渲染性能。 灵活定位:支持相对定位、居中、比例、链式排列等。 可视化编辑:Android Studio提供拖拽式约束设计。 关键功能 基础约束:每个View需至少水平和垂直方向各一个约束。 宽高设置:0dp表示“匹配约束”,自动计算大小。 居中与偏移:通过bias调整位置比例。 高级布局: 比

csdn_silent的博客 1269

为Skill开发的python脚本一些经验

其中SKILL.md的职责是调度,不是实现,这里面要写清楚如下三点: 脚本会自动生成: 如果缺少依赖: 这样就实现了分工,脚本用来完成格式转换、统计计算、文件生成;Claude做理解用户意图、选择参数、解释结果、处理特殊需求等。Claude 调用脚本时,所有参数都通过命令行传递,本质上都是字符串。但在脚本内部,应该明确转换成正确类型,而不是全程当字符串用。因此,强烈建议使用argparse里声明正确的type,如下: 的 参数会自动做转换和报错,比在代码里手动 更安全,报错信息也更清晰。特别注意如下

Criss@陈磊 855

ConstraintLayout 布局详解

ConstraintLayout 布局详解 简介 约束布局ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayout。 优点 在开发过程中经常能遇到一些复杂的UI,可能会出现布局嵌套过多的问题,嵌套得越多,设备绘制视图所需的时间和计算功耗也就越多,ConstraintLayout使用起

st526403649的博客 7812

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ConstraintLayout 详解

本文主要记录一些 ConstraintLayout用法。

diuping20110926的博客 1316

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android ConstraintLayout 约束布局的使用

目前Android的默认布局早已改成ConstraintLayout,但是很多小伙伴还是使用过去的相对布局,觉得老的布局用起来熟悉,新布局使用复杂,从而失去了探索新大陆的机会,今天就让我们一起揭开ConstraintLayout的面纱,掌握Android新布局的使用方法。传统的布局容易在版本迭代过程中,造成页面层级过多的问题(俄罗斯套娃),一是对页面渲染有影响,二是不利于开发者的后期维护。

weixin_42604414的博客 4083

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

Android ConstraintLayout属性简介(一、基础篇)

Android ConstraintLayout属性简介(一) 本篇文章介绍ConstraintLayout下面几个最基本的属性: layout_constraintLeft_toLeftOf layout_constraintLeft_toRightOf layout_constraintRight_toLeftOf layout_constraintRight_toRightOf layout_constraintTop_toTopOf layout_constraintTop_toBottomOf

海纳百川Android的博客 7852

ConstraintLayout使用总结

ConstraintLayout使用过程中遇到问题记录 android:layout_width="0dp" 效果是一样的,可以自动充满剩余空间 约束布局ConstraintLayout看这一篇就够了 哲♂学三幻神带你学习ConstraintLayout(约束布局) ......

“点点”专栏 4999

constraintlayout嵌套_ConstraintLayout 用法

可以看到,第一个Group通过app:constraint_referenced_ids指定了a、c两个控件,这样当该Group可见性为invisible时,a、c的可见性都会变为invisible,为gone则都为gone。所以Group很适合处理有网无网之类的场景,不再需要像之前那样一个一个view控制可见性,通过Group就可以统一处理了。Group有一些注意事项:xml中,可见性配置的优先...

weixin_39829501的博客 526

ConstraintLayout

##一.ConstraintLayout简介 ConstraintLayout是Android Studio 2.2中主要的新增功能之一,ConstraintLayout是使用可视化的方式来编写界面。 ConstraintLayout优点:ConstraintLayout是采用约束的方式来指定各个控件的位置和关系的,它有点类似于RelativeLayout,它可以有效地解决布局嵌套过多的问题。 #...

蓝枫 267

Constraintlayout

Constraintlayout译为”约束布局“, 是Google在AndroidStudio2.2引入的布局. 在AndroidStudio 2.3直接替代了之前的Activity创建的默认布局RelativeLayout. 可以看到Google对其重视性.特点 配合布局编辑器,提升效率(鼠标创建布局) 更好的屏幕适配(百分比适配屏幕和控件) 解决布局嵌套过多引起的性能问题(只需要一个根布局就能解

肥宅 3343

Android 的 ConstraintLayout 布局使用

加依赖:确保里有。定根布局:根标签用。放视图:把ButtonTextView等放进去。添约束(最关键!:为每个视图的水平方向和垂直方向至少各加一个约束。水平方向:约束Start或End。垂直方向:约束Top或Bottom。常用目标parent(父布局)或其他视图的id。打开 Android Studio 的布局编辑器,直接拖拽控件,观察它自动生成的约束代码,这是最快的学习途径!场景推荐选择理由新项目开发性能好、功能强、现代标准复杂界面减少嵌套、响应式支持好简单相对定位代码更简洁直观。

m0_61945436的博客 1297

ConstraintLayout详解

xml添加Guideline控件,其大部分属性如layout_width都不会生效,通过layout_constraintGuide_begin或者layout_constraintGuide_end设置两侧间距,或者layout_constraintGuide_percent设置父控件百分比,通过orientation设置辅助线是水平或者竖直辅助线。比如要设置layout_marginLeft,则需要有对应的layout_constraintLeft_*。

Oliver Lau的博客 891

constraintLayout

ConstraintLayout(约束布局)从开始学习android,刚接触的Android studio只有四种默认布局,新建一个项目的初始默认布局是RelativeLayout。但是一个月后就有了默认的ConstraintLayout但是一直没有去使用过,抽个一晚上的时间学习一下,总结一下。我可以不精通,但是我要知道它是什么东西~~~三个问题1.ConstraintLayout优点 2.Con

chenqianleo的博客 1434

Android ConstraintLayout 简介

ConstraintLayout 简介

WillScorpio 868

优化Android 布局 —— ConstraintLayout

来来来 一起使用 ConstraintLayout 好吧按照惯例 先来“吹一波” ConstraintLayout 的性能优势 减少嵌套 ,尽可能的保持 扁平的的视图结构 如下图: 使用 ConstraintLayout 和 RelativeLayout 的对比 ConstraintLayout 在测量/布局阶段的性能比 RelativeLayout大约高 40%: 可以实现 拖拽绘制...

章鱼哥的博客 441
上一篇: volley-retrofit-okhttp之我们该如何选择网路框架
下一篇: Android启动模式详解
CharonChui
博客等级 码龄12年 66粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值