# 标签

View

共 118 篇文章

Android

自定义 RecyclerView 动画:手写 ItemAnimator 实现 Remove 飞出效果

自定义 RecyclerView 动画:手写 ItemAnimator 实现 Remove 飞出效果列表里删一条数据时,我们常常希望它"飞出去"、后面的项平滑上移填补空位——这正是 RecyclerView 的 ItemAnimator 负责的事。但很多人照着写会发现:要么完全没动画,要么被删项飞出时下方 item 瞬间跳上去、和飞出项重叠闪烁。问题不在动画本身,而在于没理解 ItemAnimat

196
Android

Android 状态栏、全屏与沉浸式状态栏详解

Android 状态栏、全屏与沉浸式状态栏详解在 Android UI 里,"状态栏""全屏""沉浸式"常被混为一谈,但它们其实是三件不同的事,API 也分新旧两套。很多同学的沉浸式状态栏"在低版本好好的、高版本突然失效",多半就是没分清概念、又用错了过时 API。本文先把概念辨清,再分别讲全屏、透明状态栏、状态栏配色、WindowInsets、沉浸式模式,最后给出 AndroidX 现代统一方案

177 1
SearchView小巧的搜索控件
Android

SearchView小巧的搜索控件

SearchView小巧的搜索控件应用一个重要的功能是提供搜索,可以自己结合EditText和Button完成一个输入搜索的功能模块。但是不用那么麻烦,Android已经为我们集成好了一个功能强大的空间SearchView,通常和ToolBar一起使用,放在Menu菜单中展示。1、Menu中定义SearchView从设计上来讲,最好一直显示在Toolbar上,showAsAction属性设定为"a

1.9k
StateListDrawable:状态Drawable
Android

StateListDrawable:状态Drawable

StateListDrawable:状态Drawable控件处于不同的状态,如点击、释放、勾选、不可用等状态时设置不同的样式。在代码中可以通过条件判断去根据不同的状态进行判断再设置不同的属性,这样做太麻烦了。Android给我们的drawable提供了便捷的设置方式,就是自定义一个selector背景样式,给不同的状态属性设置对应的drawable资源。更多Drawable详见Android Dr

2.2k
ShapeDrawable:Android自定义背景
Android

ShapeDrawable:Android自定义背景

ShapeDrawable:Android自定义背景自定义背景样式shape,在res/drawable目录下。一般通过setBackground()设置成TextView、Button等控件的背景。让程序员也可以定义多种多样的背景。更多Drawable详见Android Drawable。1、shape自定义背景样式根标签<shape></shape>,形状shape有四种可以选择:rectan

2.0k 1
精选
Android

ViewPager和PagerAdapter、FragmentPagerAdapter、FragmentStatePager

ViewPager1、ViewPagerandroidx.viewpager.widget.ViewPager,Android中使用非常广泛的控件,可以说是APP必备:首次打开引导页、页面Banner广告等。常用方法:setAdapter() 设置适配器setOffscreenPageLimit() 设置缓存的页面个数,默认是 1setCurrentItem() 跳转到特定的页面setOnPage

1.1k
时间选择器:DatePicker和TimePicker
Android

时间选择器:DatePicker和TimePicker

时间选择器:DatePicker和TimePickerAndroid开发常常会遇到选择日期时间的场景,Google为我们提供了现成的系统公共控件调用。至于时间使用Java标准API即可获取想要的,可以参考Java日期:Date、Calendar及DateFormat格式化。1、日期选择器DatePickerDialog2、时间选择器:TimePickerDialog

1.6k
Android

View的四个构造函数

View的四个构造函数一般自定义View,都需要继承View或者View的某个子类,必须要实现几个参数不同的构造方法:第一个View(Context context),一般用于在代码中直接声明自定义View的时候使用第二个构造函数View(Context context, @Nullable AttributeSet attrs)是在布局中使用自定义的View是系统会自动调用,生成自定义View实

2.3k
最最最常用的控件:TextView
Android

最最最常用的控件:TextView

最最最常用的控件:TextView1、TextView常用属性:2、TextView跑马灯布局文件中TextView的几个重要属性都要设置写好上面的布局就可以实现简单的跑马灯,但是实际布局不肯能这么简单,会很复杂有各种控件,TextView可能不只一个还会有EditText占用焦点。跑马灯只有TextView获取焦点的时候才有效果。如果没有获取焦点就像下面的第二行TextView,虽然设置了跑马灯

3.5k 8
Android

Android ScrollView 顶部下拉与底部上拉回弹效果实现

Android ScrollView 顶部下拉与底部上拉回弹效果实现ScrollView 滑到顶部或底部时,默认是"硬边界"——戛然而止,没有 iOS 那种顺滑的橡皮筋回弹手感。要让 Android 的 ScrollView 也具备这种效果,需要自定义控件在触摸事件里做干预。本文实现一个 ReboundScrollView:在 dispatchTouchEvent 中判断是否到达顶部/底部,到达后

179
ViewStub懒加载
Android

ViewStub懒加载

ViewStub懒加载ViewStub常用于优化布局,使用它可以提高布局加载的性能。1、ViewStub介绍①ViewStub继承自View②ViewStub默认是不可见(GONE),而且View的大小为0③当一个ViewStub被设置成可见visible或者调用inflate()方法时,ViewStub得到填充。此时ViewStub所引用的layout布局会替换掉当前ViewStub显示出来。2

2.0k
RecyclerView基本使用
Android

RecyclerView基本使用

RecyclerView基本使用1、RecyclerViewRecyclerView是Android一个更强大的控件,其不仅可以实现和ListView同样的效果,还有优化了ListView中的各种不足。位于包 androidx.recyclerview.widget 中,需要在build.gradle中添加依赖:1.1、使用RecyclerView首先在布局文件中添加:在Activity中声明Re

1.9k