要恢复为旧的文本字段可以在布局中添加样式 <com.google.android.material.textfield.TextInputLayout ... + style="@style...下面这几种情况应该考虑 在布局中写的控件如果有对应的 MDC 控件的话,直接使用 MDC 控件 任何的风格,默认风格和默认风格属性应该改变成 MDC 版本 在编程中或者自定义类的父级类使用的任何控件都应该为...,中,大 这些合适的样式属性来自 ShapeAppearance.* styles。...MDC小部件使用这些属性来设置其背景样式。要了解哪些窗口小部件适用于哪些形状类别,需要检查源代码中的默认窗口小部件样式。 控件背景 实现此功能的类为 MaterialShapeDrawable.... 使用 `corner family` 和 `size` 来自定义 shape 我们可以选择在应用主题中覆盖形状样式来表达我们自己的品牌
TextInputLayout的使用 这里使用TextInputLayout简单写一个登录的界面 布局代码 <LinearLayout xmlns:android="http://schemas.android.com...,还有hintAppearance的值,mErrorTextAppearance是错误提示文字的样式,errorEnabled是否开启错误提示 setErrorEnabled(errorEnabled)...super.addView(child, index, params); } } 只有当child 是 EditText的时候,会调用自身的setEditText方法,然后调用父类LinearLayout...的addView方法,如果不是EditText,也调用父类的addView方法,查看setEditText方法 内部 private void setEditText(EditText editText...设置折叠的bounds去匹配EditText可编辑区域的高,接下来我们查看CollapsingTextHelper这个非常重要的类的代码 public CollapsingTextHelper(View
TextInputLayout 基础样式、错误提示、字数限制等等 效果图: 【2020-12-13】Theme切换到MaterialComponents之后,是有一些变化的,比如默认背景、默认padding..."@style/MyEditText" /> 1、修改默认样式 style: <!..." TextInputEditText: android:theme="@style/MyEditText" 2、错误提示样式及代码设置 style: <!...4、密码样式 先设置TextInputEditText android:inputType="textPassword" 然后设置TextInputLayout app:passwordToggleEnabled
出现后得到了极大改善,我们可以做最少的事达到最好的效果 效果图 ---- 导入支持库 implementation 'com.android.support:appcompat-v7:28.0.0...可以看到并不是非常美观,下载我们引入 TextInputLayout 稍作改动 ---- 使用 TextInputLayout 我们终于到达了本教程中最有趣的部分。...[a-zA-Z0-9-]+)*$/ 所以我们就可以根据这个表达式建立一个类来实现完整的功能了 public class EmailManager { private static final...另一个有趣的事实是,如果尚未启用错误功能并且您调用setError传递非null参数,setErrorEnabled(true) 则会自动调用。...每个小部件的颜色都直接从style.xml文件中指定的主题颜色中绘制 。只需打开它并将colorAccent项目添加到活动主题即可更改表单的颜色方案。
实现 TextInputLayout 第一步: 创建一个新的项目 在Android Studio中 选择New New project 。填入所需的信息然后创建项目。...这样Android Studio 编译系统会自动获取必要的资源,然后你就能够使用需要的类了。 第三步:设计用户界面 这个项目的用户界面非常简单。...[a-zA-Z0-9-]+)*$/ 注:这个正则表达式的意思我就不翻译了,如果你不熟悉正则表达式看了也没啥用。 因为我们想验证字符串,我必须依赖Pattern和Matcher两个类。...另一个有趣的事实是如果错误功能未开启但是你调用了传入非null参数的setError,那么setErrorEnabled(true)将自动被调用。...样式 你可能还想做最后一件事,改变TextInputLayout控件的颜色。默认AppCompact会把它设置成绿色的,但是很有可能这个颜色会和你的颜色主题(color palette)冲突。
这样Android Studio 编译系统会自动获取必要的资源,然后你就能够使用需要的类了。 ? Design the User Interface 这个用户界面非常简单。....support.design.widget.TextInputLayout android:id="@+id/usernameWrapper" android:layout_width...[a-zA-Z0-9-]+)*$/ 因为我们想验证字符串,我必须依赖Pattern和Matcher两个类。includeava.util.regex 包。...另一个有趣的事实是如果错误功能未开启但是你调用了传入非null参数的setError,那么setErrorEnabled(true)将自动被调用。...TextInputLayout,多亏有了刚刚引入的Design Support Library。
,如有需要,可自理(多选模式:类名.模式名) so:项目源码:Github----Android_Material_Design_Test你看着办吧 ---- 本系列文章一览: Android材料设计Material...+Palette Android材料设计之DrawerLayout+NavigationView+TextInputLayout Android材料设计之Behavior攻坚战 ---- 一、本篇是干嘛的...fab的属性.png ---- 4.Snackbar资料卡片: 国籍:非View 城市:BaseTransientBottomBar 爱好:show 一句话:虽然我不是View,但我体内燃烧着View的灵魂...fab_sna.gif ---- 5.bottom_sheet资料卡片: 国籍:非View 城市:Behavior族 爱好:暗杀、潜藏、show 一句话:哥是迷一样的存在----Behavior族 额外依赖...常用颜色.png 2.测试Text样式抽取 <!
Control (控制层)控制器由View 根据用户行为触发并响应来自view 的用户交互,然后根据view 的事件逻辑来修改对应的Model, Control 并不关心 View 如何展示 相关数据或状态...不过也有缺点,额外增加了大量的接口、类,不方便进行管理,所以关于MVP的话就还有一个Contract要去处理。...Contract 如其名,是一个契约,将Model、View、Presenter 进行约束管理,方便后期类的查找、维护。 presenter - 逻辑处理层对UI的各种业务事件进行相应处理。...本文的主要目标是ViewModel 和 DataBinding。 从Google的官方说明来看,ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。...类,表示与MainActivity进行绑定。
简介 使用ObservableField来初始化变量,例如:var userPhone=ObservableField() 封装 这时候我们需要对model类进行一层封装才能达到我们的要求...1.png 解释 因为使用databinding是双向绑定,所以咱们这里就比较方便的来直接判断变量中的值即可。...因为这里是我自己写的Demo,所以逻辑判断是比较简单的,大家如果使用按照自己的需求网上添加即可。...android:textSize="@dimen/font_normal"/> ...(registModel) //监听EditText的值是否合法 //初始化model类,用回调的值更新button的isEnabled属性 var registModel = RegisterModel
二.EventBus的基本用法 1.自定义一个事件类(相当于我们平常所用的bean类) public class MessageEvent { ... } 2.在需要订阅的地方注册 EventBus.getDefault...="vertical" <android.support.design.widget.TextInputLayout android:id="@+id/usernameWrapper"...android:inputType="textEmailAddress" android:hint="Username"/ </android.support.design.widget.TextInputLayout...<android.support.design.widget.TextInputLayout android:id="@+id/passwordWrapper" android:layout_width...:hint="Password"/ </android.support.design.widget.TextInputLayout <Button android:id="@+id
:textColor="@color/black" /> LinearLayout> 在styles.xml中增加如下样式: <style name="BottomSheetDialogStyle"...自定义Application,在com.llw.blekotlin包下新建一个BleApplication类,代码如下: open class BleApplication : Application(...然后在utils包下新增一个扩展类,用于根据不同的数据类型进行缓存处理。...> <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent...> <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent
TextInputLayout的使用 在Gradle的依赖中添加上com.android.support:design:23.0.0,其中23版本根据编译的android版本来调整对应版本即可 ?...Layout配置文件 TextInputLayout效果 在两个输入框切换点击切换的时候,EditText中的文本会有动画的方式飞向左上角。 ?...TextInputLayout效果 TextInputLayout动画实现原理 原本以为在点击输入框的时候,会是在EditText的Focus改变的时候,开始执行动画,结果发现是在整个TextInputLayout...animateToExpansionFraction CollapsingTextHelper在这个类中,保存了当前Animation执行的到的状态,比如说当前绘制的hint文案的位置(x,y),画笔的位置和颜色...TextInputLayout.onLayout 在TextInputLayout中的draw中,会根据onLayout中计算出的CollapsingTextHelper矩形位置以及缩放大小开始绘制文字
Google从动画、颜色、样式、触控反馈、布局等多个方面给出了Material Design的设计要求。...Snackbar的详细使用参见《轻量级控件SnackBar使用以及源码分析》 TextInputLayout 布局: <android.support.design.widget.TextInputLayout...需要注意的是,TextInputLayout必须包含一个EditText。...TextInputLayout详细使用请参见强大的提示控件TextInputLayout使用以及源码分析 Toolbar <android.support.v7.widget.Toolbar android...主要使用ActivityOptions类。只支持API21以上的版本。
Android 系统样式中的颜色属性 推荐阅读看完后彻底搞清楚Android中的 Attr 、 Style 、Theme 几个常用的颜色属性 先放上一张经典的图片,图片来自网络。 ?...状态 EditText:获取焦点的时候的下划线和光标颜色 TextInputLayout:悬浮 label 字体颜色 等等 android:navigationBarColor navigation...editTextColor: 默认 EditView 输入框字体颜色 TextColor TextView 的文字颜色 更多查看这里 样式介绍 从 Android 5.0 开始,Android 系统引入了...这里使用了一个 Titlbar 这样效果和整体很不搭配,我们需要的是 Titlbar 的背景使用我们的 colorPrimary 字体的颜色使用 浅色文本样式 的颜色,那么这样我们就可以自己定义一个样式...当然你自己完全可以用属性来自己完成。 ? 这是 ThemOverlay 样式的全部样式了,每个样式里面的内容都很简单。就是修改一些最基本的属性,不像 Theme 一样里面有那么多的内容。
为了减少代码的耦合性,这里采用MVC模式进行设计。(自以为是MVC)。目录结构如下: ? 登录注册 1.连接数据库 数据库操作类,封装了连接,查询,关闭数据库的方法。...计时器的设计实现 主题样式的自定义设置 自定义对话框 背景选择器selector的使用 页面跳转动画效果的设计与实现 listview数据填充及优化 页面详解 BaseActivity(Activity...基类) 为了让增强代码可读性,减少重复代码,所以把一些共性代码做了抽取。...-- 账号 -- <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:..." android:inputType="number" android:hint="账号" / </android.support.design.widget.TextInputLayout <!
③ WebRepository 数据有了,API接口有了,下面就是去调用的地方了,在repository包下新增一个WebRepository类,里面的代码如下: @SuppressLint("CheckResult...四、传递新闻参数 在点击新闻列表中的某一项的时候传递参数到WebActivity中,在NewsAdapter类中添加如下代码: public static class ClickBinding {...因此不需要放入数据表中,所以我用@Ignore注解了,下面创建相关的Dao类。...}" /> <com.google.android.material.textfield.TextInputLayout...,这里要注意,之前用的是model包下的User类,现在用的是bean包下的User类,有本质的区别,修改LoginViewModel的代码如下所示: public class LoginViewModel
extends android.support.v7.widget.AppCompatEditText { //上次输入框中的内容 private String lastString; //光标的位置...MD效果 系统自带 <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android...="true" android:gravity="center_vertical" <EditText …… / </android.support.design.widget.TextInputLayout...只需要用TextInputLayout包裹一层便可以实现MD效果。...setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo .TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); } else { // 非可视密码状态
= startActivity(Intent(this, clazz)) } 这里是作为一个基类,后续我们写关于Activity的都放在这个下面。...② 创建ServerActivity 在创建之前我们需要改动一下样式,因为之前是使用自带的ActionBar,现在我们需要去掉,改成NoActionBar,如下图所示: 然后在drawable...binding.rvMsg.smoothScrollToPosition(this) } } } } 在这里我首先继承自BaseActivity,这样可以使用父类的方法...android:id="@+id/textInputLayout" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox...在ui包下新建一个SelectTypeActivity类,对应的布局是activity_select_type.xml,代码如下: <?
领取专属 10元无门槛券
手把手带您无忧上云