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

Android Material Design系列之主题样式介绍说明等

今天这篇文章应该算是Material Design系列的补充篇,因为这篇文章本来应该放到前面讲的,因为讲的是主题嘛,对于一些状态和颜色的介绍,因为我们一新建一个项目时,系统自带了三个属性的颜色,现在就重点介绍这三个颜色属性的意义和作用...其他属性相关介绍 navigationBarColor 导航栏的背景色,但只能用在 API Level 21 以上的版本,也就是5.0以上才可以 windowBackground App 的背景色 colorControlNormal...这个也只能在API21以上才能用各控制元件的预设颜色和colorAccent正好对应 在Style上设置 以上的颜色属性均是在 style 的属性中设置。...TextInputLayout常用的方法有如下: setHint():设置提示语。 getEditText():得到TextInputLayout中的EditView控件。...,可以在右侧显示出错误信息的小弹窗提示。

1.2K70

安卓软件开发:用Java和Kotlin构建MDC-UI框架实现LoginUI(基础)

MDC提供了多种精美和实用的界面组件,让开发者快速构建现代化的应用界面。在本项目中,利用MDC框架实现一个登录页面,详细展示开发过程中的技术细节和遇到的问题。...二、项目开发过程 2.1 添加项目依赖项 api 'com.google.android.material:material:1.1.0-alpha06' dependencies { api...难点:MDC是Google官方提供的组件库,版本经常更新,不同版本之间存在很多不兼容性的问题,特别是和其他库(如 AndroidX、Kotlin 扩展)混合使用。...解决方法:需要仔细检查 MDC 版本和项目中其他库的兼容性,尽量使用稳定版;别忘了要提醒,定期查看更新日志,多了解新版本带来的改变和修复。...四、学习笔记 在开发过程中,积累了MDC框架技术的学习心得: 4.1.Material Components (MDC) 深入学习了MDC组件如TextInputLayout、MaterialButton

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

    强大的提示控件TextInputLayout使用以及源码分析

    本篇博客带来一个具有强大提示的Material Design风格的控件TextInputLayout,使用这个控件可以非常方便的做出用户登录界面帐号密码输入框的效果,文章将会从以下TextInputLayout...说明在源码中必定有添加这个提示的逻辑,这里我们后面在讨论,先继续往下看 mCollapsingTextHelper.setTextSizeInterpolator(AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR...setPositionInterpolator,setCollapsedTextGravity设置折叠文字的Gravity,看来这个mCollapsingTextHelper的作用还是很强大的,我们后面再看它的源码...,在文本改变之前,正在改变的时候都可以做相应的逻辑处理,往下看有更改EditText的Margin的方法 private LayoutParams updateEditTextMargin(ViewGroup.LayoutParams...calculateBaseOffsets()方法,用于计算基本的偏移量,注意注释的内容:在计算折叠状态下的文字大小,也使用同样的逻辑 final int collapsedAbsGravity = GravityCompat.getAbsoluteGravity

    1.8K50

    TextInputLayout-Android M新控件

    本博文将演示如何使用Design Support Library中的TextInputLayout控件。 ---- 官方API ---- 运行效果 ?...我在写这边博客的时候,support已经更新到23.2.0了,不过还是用我个人常用的23.1.1吧。虽然这个控件是在22.2.0中推出的,记得所有的Support library的版本保持一致。...一个单一的EditText 在输入文字的时候会隐藏hint,而被包含在TextInputLayout中的EditText则会让hint变成一个在EditText上方的浮动标签。...这直接影响到布局的大小,增加底部padding为错误标签让出空间。在setError设置错误消息之前开启这个功能意味着在显示错误的时候布局不会变化。你可以把这两个方法结合起来验证下我所说的。...设计范例中,控件的实现需要让用户在输入的过程中不会丢失上下文信息,它是在去年跟Material Design一起被谷歌介绍的。在这之前,没有让开发者将这个控件应用到实际项目中的支持库。

    77920

    如何高效地编写Envoy过滤器!第1部分

    通过配置侦听器(Listener),用户可以通过代理启用流量流,然后使用几个过滤器(Filter)增强数据流。使用这些过滤器的组合,Envoy可以测量、转换和执行更高阶的访问控制操作。 ?...侦听器过滤器(Listener Filters) 网络过滤器(Network Filters) HTTP过滤器(HTTP Filters) 侦听器过滤器 侦听器过滤器在初始(预)连接阶段访问原始数据并操作...HTTP过滤器 HTTP过滤器在L7上运行,并由最终的网络过滤器(即HTTP连接管理器,HTTP Connection Manager)创建。这些过滤器访问和操作HTTP请求和响应。...请注意,当前版本的MySQL过滤器依赖于动态元数据(Dynamic Metadata)来共享状态,现在不提倡使用动态元数据来共享状态,而是提倡使用过滤器状态。...总结 Envoy通过内置过滤器提供了丰富的特性,可以通过侦听器配置快速利用这些特性。过滤器链(filter chain)范式是一种强大的机制,Envoy允许用户通过扩展它的API来实现自己的过滤器。

    3.7K40

    初识 vue3的Composition API

    Composition API 也叫组合式API, 是在vue3中新引入的一种API,vue2中已经有option API了,那为什么要新稿这么一套呢,其实主要原因是要解决vue2中的option API...slots:包含了所有传入的插槽内容,这些内容可以用于渲染作用域插槽。emit:是一个函数,用于向父组件发出自定义事件。它是this.\$emit的替代。...pre: 与post相反,表示侦听器回调会在 DOM更新之前执行 的更新。这个选项适用于需要在 DOM 更新之前访问旧 DOM 的场景。sync: 表示侦听器回调会在数据变化时立即同步执行。...这通常会导致更高的性能开销,因为它会阻止其他任务的执行,直到侦听器回调完成。这个选项适用于需要立即响应数据变化,并且变化不频繁的场景。...onCleanup: 一个在侦听器停止侦听之前执行的函数(可以用来清除无效的副作用,例如等待中的异步请求。)

    16910

    安卓 topic-UI-设置 settings

    对于 Android 3.0 及更高版本,您应改用传统 Activity ,以托管可显示应用设置的 PreferenceFragment 。...注:如果您在开发针对 Android 3.0 及 更高版本的应用,则应改为使用 PreferenceFragment。转到下文有关使用首选项片段的部分。...级别 11)及更高版本的应用,则应使用 PreferenceFragment 显示 Preference 对象的列表。...** 在开发针对 Android 3.0 及更高版本**的此类设计时,您应该使用“标头”功能,而非使用嵌套的 PreferenceScreen 元素构建子屏幕。...但是,您必须存储对侦听器的强引用,否则它将很容易被当作垃圾回收。 我们建议您将对侦听器的引用保存在只要您需要侦听器就会存在的对象的实例数据中。 例如,在以下代码中,调用方未保留对侦听器的引用。

    3.1K10

    vue3的Composition API

    Composition API 也叫组合式API, 是在vue3中新引入的一种API,vue2中已经有option API了,那为什么要新稿这么一套呢,其实主要原因是要解决vue2中的option API...这通常会导致更高的性能开销,因为它会阻止其他任务的执行,直到侦听器回调完成。这个选项适用于需要立即响应数据变化,并且变化不频繁的场景。...onCleanup: 一个在侦听器停止侦听之前执行的函数(可以用来清除无效的副作用,例如等待中的异步请求。)...,是 Vue 3 引入的一种新的 API,旨在解决 Options API 在处理复杂组件逻辑时的局限性。它通过函数的方式来组织代码,使得逻辑更加模块化和可组合。...相比于 Vue 2 的 Options API,Composition API 使得在大型项目中管理复杂逻辑变得更加容易。以下是对 Vue 3 Composition API 的详细解释:

    9610

    Android MVVM框架搭建(一)ViewModel + LiveData + DataBinding

    好了,说了这么多理论的东西,下面进入实操环节,先说明开发环境,我使用的Android Studio是4.2.1,API版本30,gradle 版本6.7.1,JDK8,电脑Win10。...,是两者不存在耦合性,因此你可以知道ViewModel在整个MVVM框架中的重要性了。...然后我们的数据是需要显示在页面上的,而之前是通过Activity获取xml中的控件,然后显示数据在控件上,而现在有了DataBinding,可以直接和xml的中数据进行绑定,这看起来和JS比较像。...当然这样还没有完成,最后一步是在MainActivity中去进行绑定的。 进入MainActivity。在onCreate方法中,先将其他的代码注释掉。...下面运行一下: ② 双向绑定   双向绑定是建立在单向绑定的基础上,实际的开发中用到双向绑定的地方并没有单向绑定多,双向绑定举一个例子,在输入框输入数据时候直接将数据源中的数据进行改变,这里会用到

    17.1K97

    Android MVVM框架搭建(一)ViewModel + LiveData + DataBinding

    好了,说了这么多理论的东西,下面进入实操环节,先说明开发环境,我使用的Android Studio是4.2.1,API版本30,gradle 版本6.7.1,JDK8,电脑Win10。...,是两者不存在耦合性,因此你可以知道ViewModel在整个MVVM框架中的重要性了。...然后我们的数据是需要显示在页面上的,而之前是通过Activity获取xml中的控件,然后显示数据在控件上,而现在有了DataBinding,可以直接和xml的中数据进行绑定,这看起来和JS比较像。...当然这样还没有完成,最后一步是在MainActivity中去进行绑定的。 进入MainActivity。在onCreate方法中,先将其他的代码注释掉。...下面运行一下: ② 双向绑定   双向绑定是建立在单向绑定的基础上,实际的开发中用到双向绑定的地方并没有单向绑定多,双向绑定举一个例子,在输入框输入数据时候直接将数据源中的数据进行改变,这里会用到

    2.7K32

    YH12:一篇文章读懂SCAN

    使用SCAN的网络需求 在安装与Oracle Database 11. 2或更高版本一起分发的Oracle Grid Infrastructure的过程中定义了默认的SCAN配置。...Oracle客户端通常处理集群中SCAN侦听器之间的连接请求的故障转移。 Oracle数据库11.2或更高版本的Oracle客户端不需要任何特殊配置来提供此类故障转移。较老的客户需要考虑额外的配置。...因此,建议使用SCAN连接到数据库的客户端的最小版本是Oracle Database 11.2或更高版本。 使用客户端DNS缓存可能会产生DNS覆盖不会从DNS服务器发生的错误印象。...11.2版或更高版本的数据库时,SCAN概念是必不可少的。...这类似于当客户端连接字符串中提供地址列表时,客户端连接故障转移在以前版本中的工作原理。 当SCAN侦听器接收到连接请求时,SCAN侦听器将检查提供所请求服务的最少加载的实例。

    1.9K60

    Android MVVM框架搭建(六)腾讯X5WebView + DrawerLayout + NavigationView

    三、获取新闻详情   在聚合API中获取新闻详情是另一个接口,在写这个接口之前,先写一个返回的新闻详情数据。...③ WebRepository   数据有了,API接口有了,下面就是去调用的地方了,在repository包下新增一个WebRepository类,里面的代码如下: @SuppressLint("CheckResult...就是操作用户表的方法。...③ 数据库升级   之前的数据库版本是3,现在我新增了用户表,则需要对数据库进行一个升级迁移,在AppDatabase中增加如下代码: /** * 版本升级迁移到4 新增用户表 *...这里在注册的时候如果是输入密码出于保护的情况下是显示黑屏的,程序没有问题,不要诧异,可以自行去测试使用,本篇文章就到这里了。

    2.2K20

    开发了一个小程序辅助分析食品是不是健康

    开发过程 由于我自己不会小程序的开发,有这个想法后,第一时间找了一个会小程序开发的同事聊一下,他觉得可以做,就帮忙做了第一个版本的UI,我后来借助大模型在他的基础上稍微修改了一点点。...在工作中,我一直使用的是GPT-4o和GPT-4o-mini,这次因为这个小程序,第一次使用国产的多模态大模型,发现差距还是挺大的,图片识别效果上差很多,而且API的响应速度也差不少。...最大区别是,国产多模态大模型,似乎不支持system prompt,基本上不起任何作用,搞得我一度以为国产多模态居然这么差劲,但是后来想想它们的app对于图片识别的效果挺好的,不应该API的效果这么差,...,这样不经降低了对服务器性能的消耗,可以让服务器支撑更高的并发,而且整个识别过程耗时也降低了不少,毕竟减少了传输照片的时间。...独立开发者 最近看到很多关于独立开发者的信息,这次自己实实在在做了一个小产品,发现想做一个独立开发者,还能养活自己和家人是不容易的,其难度甚至比在公司挣工资还要难。

    9410

    管理数据必备;侦听器watch用法详解,vue2与vue3中watch的变化与差异

    一、侦听器(watch)是什么? 侦听器是一个在 Vue.js 框架中用于观察和响应数据变化的机制。侦听器允许开发者指定一个函数,这个函数会在特定数据变化时自动执行。...二、Vue2中的watch(Options API) 在Vue2中,watch 是一个选项,你可以在组件中定义它来观察数据的变化。...3.2.1、基础语法 在Vue3的Composition API中,watch 以函数的形式存在,可以更细粒度地控制侦听器。...使用Composition API的watch提供了更大的灵活性,例如,你可以观察更复杂的响应式状态,或者使用watchEffect来自动追踪依赖并执行副作用。...副作用通常是指那些与组件渲染无关的操作,如 API 调用、手动更改 DOM 等。watchEffect 不需要显式指定要观察的响应式状态,它会自动追踪其内部使用的响应式引用和状态。

    14610

    Vue3 源码解析(十):watch 的实现原理

    本篇文章笔者会讲解 Vue3 中侦听器相关的 api:watchEffect 和 watch 。...响应式 api,今天我们就一起来学习 watch 相关的侦听器是如何实现的。...第二个参数 options 是一个对象,在这个对象中有三个属性,你可以修改 flush 来改变副作用的刷新时机,默认为 pre,当修改为 post 时,就可以在组件更新后触发这个副作用侦听器,改同 sync...在调用侦听器之前会先通过 cleanup 清除副作用,接着触发 cb 回调,将 newValue、oldValue、onInvalidate 三个参数传入回调。...在讲解的过程中,我们发现 Vue3 中的侦听器也是通过副作用来实现的,所以理解侦听器之前需要先了解透彻副作用究竟做了什么。

    1.4K10

    Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 L4)过滤器和HTTP连接管理

    术语 在我们深入到主要的体系结构文档之前,有一些定义。有些定义在行业中有些争议,但是它们是Envoy在整个文档和代码库中如何使用它们的,因此很快就会出现。...一旦一个连接被一个监听器接受,这个连接将其生命周期的其余部分花费在一个工作者线程上。 这使得大多数Envoy在很大程度上是单线程的(令人尴尬的并行),而在工作线程之间有少量更复杂的代码处理协调。...过滤器API允许将不同的过滤器组混合并匹配并附加到给定的监听器。有三种不同类型的网络过滤器: 读取:当Envoy从下游连接接收数据时,会调用读取过滤器。...用于网络级过滤器的API相对简单,因为最终过滤器在原始字节和少量连接事件(例如,TLS握手完成,连接本地或远程断开连接等)上操作。链中的过滤器可以停止并随后继续迭代以进一步过滤。...编解码器API用于将不同的有线协议转换为针对流,请求,响应等的协议不可知形式。在HTTP / 1.1的情况下,编解码器将协议的串行/流水线功能转换为看起来像HTTP / 2到更高层。

    1.9K30
    领券