View概述

Author Avatar
罗炜光 8月 08, 2016
  • 在其它设备中阅读本文章

自定义View常用方法

方法 说明
onFinishInflate() 当View中所有的子控件 均被映射成xml后触发
onMeasure(int, int) 确定所有子元素的大小
onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发
onSizeChanged(int, int, int, int) 当view的大小发生变化时触发
onDraw(Canvas) view渲染内容的细节
onKeyDown(int, KeyEvent) 有按键按下后触发
onKeyUp(int, KeyEvent) 有按键按下后弹起时触发
onTrackballEvent(MotionEvent) 轨迹球事件
onTouchEvent(MotionEvent) 触屏事件
onFocusChanged(boolean, int, Rect) 当View获取 或失去焦点时触发
onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发
onAttachedToWindow() 当view被附着到一个窗口时触发
onDetachedFromWindow() 当view离开附着的窗口时触发
onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发

属性

  1. android:accessibilityLiveRegion
    相关方法:setAccessibilityLiveRegion(int)
    说明:设置无障碍服务 表明 View 组件改变时用户是否应该被通知.

  2. android:accessibilityTraversalAfter
    相关方法:setAccessibilityTraversalAfter(int)
    说明:设置访问性遍历中, 先执行的View组件id|

  3. android:accessibilityTraversalBefore
    相关方法:setAccessibilityTraversalBefore(int)
    说明:设置访问性遍历中, 后执行的View组件的id

  4. android:alpha
    相关方法:setAlpha(float)
    说明:设置透明度

  5. android:background
    相关方法:setBackgroundResource(int)
    说明:设置背景

  6. android:backgroundTint
    相关方法:setBackgroundTintList(ColorStateList)
    说明:设置背景着色

  7. android:backgroundTintMode
    相关方法:setBackgroundTintMode(PorterDuff.Mode)
    说明:设置背景着色模式

  8. android:clickable
    相关方法:setClickable(boolean)
    说明:是否对点击事件做出响应

  9. android:contentDescription
    相关方法:setContentDescription(CharSequence)
    说明:设置组件的内容描述信息

  10. android:contextClickable
    相关方法:setContextClickable(boolean)
    说明:是否对点击事件做出响应

  11. android:drawingCacheQuality
    相关方法:setDrawingCacheQuality(int)
    说明:半透明绘制缓存的质量

  12. android:duplicateParentState
    说明:设置为true,则该View由它的直接父类获得绘制状态(焦点、按下)而不是它自身

  13. android:elevation
    相关方法:setElevation(float)
    说明:设置z轴深度

  14. android:fadeScrollbars
    相关方法:setScrollbarFadingEnabled(boolean)
    说明:不使用滚动条时是否淡出显示

  15. android:fadingEdgeLength
    相关方法:getVerticalFadingEdgeLength()
    说明:设置渐变边缘的长度

  16. android:filterTouchesWhenObscured
    相关方法:setFilterTouchesWhenObscured(boolean)
    说明:当该View的窗口被其他可见的窗口遮挡时是否过滤触摸事件

  17. android:fitsSystemWindows
    相关方法:setFitsSystemWindows(boolean)
    说明:是否根据系统窗口例如状态栏调整View布局

  18. android:focusable
    相关方法:setFocusable(boolean)
    说明:是否可以获得焦点

  19. android:focusableInTouchMode
    相关方法:setFocusableInTouchMode(boolean)
    说明:触摸模式下是否可以得到焦点

  20. android:foreground
    相关方法:setForeground(Drawable)
    说明:设置前景

  21. android:foregroundGravity
    相关方法:setForegroundGravity(int)
    说明:设置前景位置

  22. android:foregroundTint
    相关方法:setForegroundTintList(ColorStateList)
    说明:设置前景着色

  23. android:foregroundTintMode
    相关方法:setForegroundTintMode(PorterDuff.Mode)
    说明:设置前景着色模式

  24. android:hapticFeedbackEnabled
    相关方法:setHapticFeedbackEnabled(boolean)
    说明:否为特定动作开启触摸反馈功能(如长按)

  25. android:id
    相关方法:setId(int)
    说明:设置唯一标识

  26. android:importantForAccessibility
    相关方法:setImportantForAccessibility(int)
    说明:设置该View组件对无障碍服务的重要性

  27. android:isScrollContainer
    相关方法:setScrollContainer(boolean)
    说明:指定该View是否作为一个可滚动的容器,支持可以通过改变大小收缩整个窗口为输入法腾出空间

  28. android:keepScreenOn
    相关方法:setKeepScreenOn(boolean)
    说明:是否强制屏幕常亮

  29. android:layerType
    相关方法:setLayerType(int,Paint)
    说明:设置指定层的类型

  30. android:layoutDirection
    相关方法:setLayoutDirection(int)
    说明:指定布局绘制的方向

  31. android:longClickable
    相关方法:setLongClickable(boolean)
    说明:是否响应长点击事件

  32. android:minHeight
    相关方法:setMinimumHeight(int)
    说明:设置视图最小高度

  33. android:minWidth
    相关方法:setMinimumWidth(int)
    说明:设置视图最小宽度

  34. android:nextFocusDown
    相关方法:setNextFocusDownId(int)
    说明:向下移动焦点时,下一个获取焦点的view的id

  35. android:nextFocusForward
    相关方法:setNextFocusForwardId(int)
    说明:下一个获取焦点的view的id

  36. android:nextFocusLeft
    相关方法:setNextFocusLeftId(int)
    说明:向左移动焦点时,下一个获取焦点的view的id

  37. android:nextFocusRight
    相关方法:setNextFocusRightId(int)
    说明:向右移动焦点时,下一个获取焦点的view的id

  38. android:nextFocusUp
    相关方法:setNextFocusUpId(int)
    说明:向上移动焦点时,下一个获取焦点的view的id

  39. android:onClick
    说明:点击时,要调用的方法的名称

  40. android:padding
    相关方法:setPaddingRelative(int,int,int,int)
    说明:设置上下左右的边距

  41. android:paddingBottom
    相关方法:setPaddingRelative(int,int,int,int)
    说明:下边距

  42. android:paddingEnd
    相关方法:setPaddingRelative(int,int,int,int)
    说明:右边距

  43. android:paddingLeft
    相关方法:setPadding(int,int,int,int)
    说明:左边距

  44. android:paddingRight
    相关方法:setPadding(int,int,int,int)
    说明:右边距

  45. android:paddingStart
    相关方法:setPaddingRelative(int,int,int,int)
    说明:左边距

  46. android:paddingTop
    相关方法:setPaddingRelative(int,int,int,int)
    说明:上边距

  47. android:requiresFadingEdge
    相关方法:setVerticalFadingEdgeEnabled(boolean)
    说明:定义滚动时边缘是否褪色

  48. android:rotation
    相关方法:setRotation(float)
    说明:旋转度数

  49. android:rotationX
    相关方法:setRotationX(float)
    说明:水平旋转度数

  50. android:rotationY
    相关方法:setRotationY(float)
    说明:竖直旋转度数

  51. android:saveEnabled
    相关方法:setSaveEnabled(boolean)
    说明:在配置改变等情况出现时是否保存view的状态数据

  52. android:scaleX
    相关方法:setScaleX(float)
    说明:水平方向缩放比例

  53. android:scaleY
    相关方法:setScaleY(float)
    说明:竖直方向缩放比例

  54. android:scrollIndicators
    相关方法:setScrollIndicators(int)
    说明:定义了哪些滚动指标时视图可以滚动

  55. android:scrollX
    说明:水平方向的滚动偏移

  56. android:scrollY
    说明:竖直方向的滚动偏移

  57. android:scrollbarAlwaysDrawHorizontalTrack
    说明:是否显示水平滚动条轨道

  58. android:scrollbarAlwaysDrawVerticalTrack
    说明:是否显示垂直滚动条轨道

  59. android:scrollbarDefaultDelayBeforeFade
    相关方法:setScrollBarDefaultDelayBeforeFade(int)
    说明:滚动条在多少毫秒后开始淡出

  60. android:scrollbarFadeDuration
    相关方法:setScrollBarFadeDuration(int)
    说明:滚动条在淡出过程需要多少毫秒

  61. android:scrollbarSize
    相关方法:setScrollBarSize(int)
    说明:垂直滚动条的宽度和水平滚动条的高度

  62. android:scrollbarStyle
    相关方法:setScrollBarStyle(int)
    说明:滚动条的风格和位置

  63. android:scrollbarThumbHorizontal
    说明:水平滚动条的滑块对应的Drawable对象

  64. android:scrollbarThumbVertical
    说明:垂直滚动条的滑块对应的Drawable对象

  65. android:scrollbarTrackHorizontal
    说明:水平滚动条的轨道对应的Drawable对象

  66. android:scrollbarTrackVertical
    说明:垂直滚动条的轨道对应的Drawable对象

  67. android:scrollbars
    说明:设置可显示的滚动条

  68. android:soundEffectsEnabled
    相关方法:setSoundEffectsEnabled(boolean)
    说明:点击或触摸该view时,是否使用音效

  69. android:stateListAnimator
    说明:设置状态动画

  70. android:tag
    说明:设置一个字符串类型的tag值

  71. android:textAlignment
    相关方法:setTextAlignment(int)
    说明:设置文本的显示对齐方式

  72. android:textDirection
    相关方法:setTextDirection(int)
    说明:设置文本的显示方向

  73. android:transformPivotX
    相关方法:setPivotX(float)
    说明:设置该组件旋转时旋转中心的X坐标

  74. android:transformPivotY
    相关方法:setPivotY(float)
    说明:设置该组件旋转时旋转中心的Y坐标

  75. android:transitionName
    说明:对于需要共享的元素分配一个通用的名字

  76. android:translationX
    相关方法:setTranslationX(float)
    说明:设置该组件在X方向上的位移

  77. android:translationY
    相关方法:setTranslationY(float)
    说明:设置该组件在Y方向上的位移

  78. android:translationZ
    相关方法:setTranslationZ(float)
    说明:设置该组件在Z方向上的位移

  79. android:visibility
    相关方法:setVisibility(int)
    说明:设置该组件是否可见

  • 其中android:isScrollContainerandroid:scrollbarAlwaysDrawHorizontalTrackandroid:scrollbarAlwaysDrawVerticalTrack似乎无效
  • android:accessibilityLiveRegion属性说明
说明
none 不通知
polite 通知
assertive 中断当前工作并通知
  • android:drawingCacheQuality属性说明
说明
auto 默认值, 让系统框架决定应该被用于绘图缓存的质量等级
low 低质量, 当设置为低质量时, 绘图缓存使用较低的色彩深度, 这样在渲染一些渐变图像时会丢失一些精度, 但是使用较少的内存
high 高质量, 使用更高的色彩深度, 但是消耗更多的内存
  • android:importantForAccessibility属性说明
说明
auto 让系统决定本 View 组件对于无障碍服务的重要性, 不推荐
yes 该 View 组件对于无障碍服务是重要的
no 该 View 组件对于无障碍服务是不重要的
noHideDescendants 该View组件对于无障碍服务是不重要的,但是该属性的作用范围不包括View树中该View下层的组件
  • android:layerType属性说明
说明
none 不指定
software 软件层
hardware 硬件层
  • android:scrollbars的属性说明
说明
none 不显示滚动条
horizontal 显示水平滚动条
vertical 显示垂直滚动条
  • android:scrollbarStyle的属性说明
说明
insideOverlay 默认值,表示在padding区域内并且覆盖在view上
insideInset 表示在padding区域内并且插入在view后面
outsideOverlay 表示在padding区域外并且覆盖在view上
outsideInset 表示在padding区域外并且插入在view后面
  • android:scrollbars
说明
none 不显示滚动条
horizontal 显示水平滚动条
vertical 显示竖直滚动条

参考资料

android中View类的详解