
Material Design
文章平均质量分 94
yechaoa
优快云博客专家、掘金签约作者、infoQ 专家博主、阿里云专家博主、51CTO专家博主、华为云云享专家;现就职于阿里巴巴,研究方向包括但不限于大前端、端基础架构与中间件、性能优化等。
展开
-
带你造轮子,自定义一个随意拖拽可吸边的View
在开发中,随意拖拽可吸边的悬浮View还是比较常见的,这种功能网上也有各种各样的轮子,其实写起来并不复杂,看完本文,你也可以手写一个,而且不到`400`行代码就能实现一个通用的随意拖拽可吸边的悬浮View组件。......原创 2022-08-09 00:03:56 · 2383 阅读 · 1 评论 -
怎么简单实现菜单拖拽排序的功能
本文主角是`ItemTouchHelper`。它是RecyclerView对于item交互处理的一个「辅助类」,主要用于拖拽以及滑动处理。以接口实现的方式,达到配置简单、逻辑解耦、职责分明的效果,并且支持所有的布局方式。...原创 2022-08-04 20:48:18 · 1015 阅读 · 0 评论 -
Android通知Notification使用全解析,看这篇就够了
通知是 Android 在您的应用 UI 之外显示的消息,用于向用户提供提醒、来自其他人的通信或来自您的应用的其他及时信息。用户可以点击通知打开您的应用或直接从通知中执行操作。本文将带领实现各种常见的通知功能,以及各个Android版本需要做的。发起一个普通通知的几个要素:重要通知,优先级设置最高,会直接显示在屏幕内(前台),而不是只有通知抽屉里,所以一定要设置,不要引起用户的负面情绪。这里有几个新增的配置:可以通过在通知上添加一个自定义操作,如上图:去看看。可以通过打开一个Activity,也可以是原创 2022-06-26 20:29:51 · 22983 阅读 · 7 评论 -
【首发】根据壁纸修改App主题,它真的来了
曾经产品经理的奇思妙想,现在终于可以实现了…效果中,原本是红色壁纸对应的红色App主题,在改成绿色壁纸之后,App主题也相应的变成绿色了。原创 2022-05-02 23:12:42 · 3836 阅读 · 7 评论 -
Android原生TabLayout使用全解析,看这篇就够了
前言为什么会有这篇文章呢,是因为之前关于TabLayout的使用陆陆续续也写了好几篇了,感觉比较分散,且不成体系,写这篇文章的目的就是希望能把各种效果的实现一次性讲齐,所以也有了标题的「看这篇就够了」。TabLayout作为导航组件来说,使用场景非常的多,也意味着要满足各种各样的需求。在效果实现上,有很多同学都选择自定义View来做,定制性高,但易用性、稳定性、维护性不敢保证,使用官方组件能避免这些不确定性,一是开源,有很多大佬共建;二是经过大型app验证,比如google play;有了这两点,基本原创 2022-04-24 17:56:10 · 38177 阅读 · 22 评论 -
【涨姿势】你没用过的BadgeDrawable
通常情况下,我们在做小红点效果的时候,会有两种选择: 1. 自定义BadgeView,然后设置给目标View 2. xml写一个View,然后设置shape有的同学可能会想,能实现不就行了吗,是的,代码优不优雅、骚不骚的不重要,`代码和人只要有一个能跑就行`...不过,今天来介绍一种不同的方式来实现小红点效果,或许会让你眼前一亮~原创 2022-01-16 17:48:43 · 6156 阅读 · 7 评论 -
Android ShapeableImageView使用详解,告别shape、三方库
效果前言先来看一下ShapeableImageView是什么由上图可以看到ShapeableImageView也没有什么神秘的,不过是ImageView的一个子类而已,但是从效果图来看,在不写shape、不引入三方库的情况下,还是挺容易实现预期效果的,而且扩展性良好。使用引入material包implementation 'com.google.android.material:material:1.2.1'常规<com.google.android.material.imag原创 2021-05-29 01:48:50 · 13781 阅读 · 14 评论 -
Android MaterialButton使用详解,告别shape、selector
按钮你还只用Button吗,试试MaterialButton吧。原创 2021-05-23 19:08:47 · 4834 阅读 · 12 评论 -
BottomSheetDialog 使用详解,设置圆角、固定高度、默认全屏等
效果MD风格的底部弹窗,比自定义dialog或popupwindow使用更简单,功能也更强大。其实细分来说,是BottomSheet、BottomSheetDialog、BottomSheetDialogFragmentBottomSheet与主界面同层级关系,可以事件触发,如果有设置显示高度的话,也可以拉出来,且不会影响主界面的交互。XML<?xml version="1.0" encoding="utf-8"?><androidx.coordinatorlayout.原创 2020-11-25 20:14:30 · 31441 阅读 · 20 评论 -
Kotlin BottomNavigationView添加角标(BadgeView)
效果思路获取整个BottomNavigationView菜单,再根据下标获取某一个子菜单tab,然后给这个tab添加我们自定义的view,可以是数字也可以是文字。代码 /** * 给BottomNavigationView 设置Badge 小红点 * * BottomNavigationMenuView中的每一个Tab是一个FrameLayout,...原创 2020-01-14 17:44:31 · 1922 阅读 · 0 评论 -
Kotlin APP首页主流框架搭建DrawerLayout+NavigationView+Toolbar+ViewPager+BottomNavigationView
效果页面结构解析这是一个比较常见的APP首页的结构,侧边栏+主页,侧边栏里是一些菜单,主页由底部菜单控制内容区,内容区是可滑动的子页面。整体比较舒服合理,各自为阵,却又能关联在一起,加上又是大众喜爱的Material Design风格,所以成为了当下APP首页的主流结构。上图是做的一个简单的思维导图,并不复杂,理清了结构就能事半功倍。页面布局1.首页即整个大的容器。<?...原创 2020-01-14 17:27:59 · 5518 阅读 · 2 评论 -
DrawerLayout使用详解
DrawerLayout 抽屉布局文章目录效果:布局关联Toolbar手动打开关闭监听github:https://github.com/yechaoa/MaterialDesign效果:布局<android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" android:...原创 2019-06-11 18:00:53 · 41046 阅读 · 5 评论 -
Android 9.0修改TabLayout下划线的宽度
通常情况下我们要修改TabLayout下划线(tabIndicator)的宽度的话,常用的有两种方案:1,反射重新计算宽度2,通过setCustomView的方式自定义item第一种在Android 9.0已经失效了,第二种如果使用场景较多,也麻烦当然也可以选择第三方库,但是一般不这么做在Android design v28 的版本中,官方对TabLayout做了优化,只需要一个属...原创 2019-04-26 15:41:02 · 1076 阅读 · 0 评论 -
CardView使用及属性
使用非常简单,属性不多,常用的更是没几个,自带就有阴影和圆角了compile 'com.android.support:cardview-v7:25.3.1'<android.support.v7.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent"原创 2017-09-29 11:21:01 · 1619 阅读 · 0 评论 -
Snackbar使用详解
Snackbar是介于Toast与Dialog之间的一个控件,既可以像Toast一样自动消失,也可以像Dialog一样交互消失。使用与Toast相似:Snackbar.make(view, "已加入行程", Snackbar.LENGTH_SHORT).show();第一个参数是view,任意都行,但是google官方建议传入CoordinatorLayout,原创 2017-10-16 14:32:31 · 2288 阅读 · 2 评论 -
TabLayout 使用详解(修改文字大小、下划线样式等)
官网是这样介绍的:TabLayout provides a horizontal layout to display tabs.(水平方向的选项卡)依赖包:compile 'com.android.support:design:25.3.1'代码方式:TabLayout tabLayout = ...; tabLayout.addTab(tabLay原创 2017-10-17 13:59:51 · 2046 阅读 · 0 评论 -
Android5.0之RecyclerView
RecyclerView在官方文档中是这样介绍的:RecyclerView是Android5.0版本中新添加的一个用来取代ListView、GridView的SDK,比ListView、GridView更高级且更具灵活性。此组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作。如果您有数据集合,其中的元素将因用户操作或者网络事件而发生改变,建议使用Recycler原创 2016-09-05 16:44:29 · 1013 阅读 · 0 评论 -
Android官方下拉刷新控件SwipeRefreshLayout
SwipeRefreshLayout是Google提供的一个官方的下拉刷新控件,比传统的使用起来更简易。效果图:主要方法:OnRefreshListener:刷新监听,下拉触发。setRefreshing(true):设置刷新动画,取消传false。setColorSchemeResources:设置刷新时动画的颜色。1.布局文件SwipeRefreshLa原创 2016-09-06 23:06:48 · 860 阅读 · 0 评论 -
CoordinatorLayout使用浅析
CoordinatorLayout是design包中的控件,作为外层控件可以协调子控件从而实现炫酷的效果等。compile 'com.android.support:design:25.4.0'在android studio中有一个ScrollingActivity的模板<android.support.design.widget.CoordinatorLayou原创 2017-11-15 17:16:54 · 856 阅读 · 0 评论 -
TextInputLayout使用详解
TextInputLayout 基础样式、错误提示、字数限制等等效果图: 布局文件 <android.support.design.widget.TextInputLayout android:id="@+id/til_name" android:layout_width="0dp" android:layout_height="wrap_c原创 2017-12-02 22:54:05 · 3252 阅读 · 0 评论 -
BottomNavigationView使用,配合ViewPager、修改图标大小、去掉文字等
MaterialDesign中的一个底部导航栏(默认高度56dp,菜单在3~5个)优点:使用简单,自带动画缺点:定制化不足github有个封装过的(传送门)<android.support.design.widget.BottomNavigationView android:id="@+id/navigation" android:layou原创 2017-11-13 14:43:18 · 2022 阅读 · 0 评论 -
SearchView使用详解
搜索在一般APP中是基本功能,且非常重要。 常见的有组装的EditText,今天主要讲的是SearchView。 官方文档地址:https://developer.android.google.cn/reference/android/widget/SearchView效果图: 很简单,主要3个步骤创建菜单文件配置SearchView处理事件,即监听1.创建菜...原创 2018-06-11 22:38:49 · 20356 阅读 · 3 评论 -
Android TabLayout修改选中字体大小
style的方式只能改整体的大小,修改选中字体大小就需要用到CustomView了效果: 核心就是给TabLayout设置自定义布局,通过自定义布局拿到id,然后设置选中时的字体大小自定义tab布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http:...原创 2018-08-30 10:51:00 · 10530 阅读 · 0 评论 -
Android之FloatingActionButton使用
FloatingActionButton悬浮按钮。继承自ImageView,配合CoordinatorLayout一起使用。1.引用compile 'com.android.support:design:24.2.1'2.布局<android.support.design.widget.CoordinatorLayout xmlns:android="原创 2017-03-07 14:06:36 · 1247 阅读 · 0 评论