Android 开发 View的API 转载

转载地址:https://blog.csdn.net/lemonrabbit1987/article/details/47704679

View类代表用户界面组件的基本构建块。一个View占据屏幕上的一块方形区域,负责该区域的绘图或事件处理。View类是用来创建交互式UI界面的所有部件的基类。

一个窗口的所有View以树形的方式组织。可以通过代码创建和组装View的方式或者通过编写一个或多个XML布局文件的方式搭建View树。View的具体子类可以作为控件或者显示文本、图像或者其他内容。

一旦创建好了View树,可以根据需要执行一下几类共同的操作:

  • 设置属性。例如为一个TextView设置文本属性。除了View定义的属性和方法外,View不同子类具有一些特有的属性和方法。注意:在构建View树时已知的属性可以在XML布局文件中设置。
  • 设置焦点。Android系统会根据用户输入移动焦点。利用requestFocus方法,强制将焦点置于某个特定的视图。
  • 设置listener。允许为View设置一些listener,这样可以在某些感兴趣的事件发生时获得通知。例如所有的View都可以使用setOnFocusChangeListener(android.view.View.OnFocusChangeListener)设置一个用以跟踪该View获得焦点或失去焦点的listener。其他View子类提供了特有的listener。例如一个Button可以设置一个监测是否被点击的listener.
  • 设置可视化。可以通过setVisibility(int)方法设置显示或隐藏View.

View的XML属性

属性名称 相关方法 描述
android:accessibilityLiveRegion setAccessibilityLiveRegion(int) 指示无障碍服务当View改变时是否通知用户
android:alpha setAlpha(float) Viewalpha透明度属性,从0(完全透明)到1(不透明)
android:background setBackgroundResource(int) 一个作为背景的drawable元素
android:clickable setClickable(boolean) 定义这个View是否响应单击事件
android:clickable setClickable(boolean) 定义这个View是否响应单击事件
android:contentDescription setContentDescription(CharSequence) 定义简单描述View内容的文本,通常用于提供无障碍支持
android:drawingCacheQuality setDrawingCacheQuality(int) 定义透明绘画缓冲的质量
android:duplicateParentState   这个属性设置为true,则该View由它的直接父类获得绘制状态(焦点、按下)而不是它自身
android:fadeScrollbars setScrollbarFadingEnabled(boolean) 定义当滚动条无用时是否渐隐
android:fadingEdgeLength getVerticalFadingEdgeLength() 设置View上下黑色阴影边的长度
android:filterTouchesWhenObscured setFilterTouchesWhenObscured(boolean) 指定当该View的窗口被其他可见的窗口遮挡时是否过滤触摸事件
android:fitsSystemWindows setFitsSystemWindows(boolean) 是否根据系统窗口例如状态栏调整View布局
android:focusable setFocusable(boolean) 设置该View是否可以获得焦点
android:focusableInTouchMode setFocusableInTouchMode(boolean) 设置在触摸模式下该View是否可以获得焦点
android:hapticFeedbackEnabled setHapticFeedbackEnabled(boolean) 设置View是否有触觉的反馈(长按等事件支持)
android:id setId(int) 为该View指定一个标识名称,支持通过view.findViewById()Activity.findViewById()方法获取该View
android:importantForAccessibility setImportantForAccessibility(int) 指定该View对无障碍支持的重要度
android:isScrollContainer setScrollContainer(boolean) 指定该View是否作为一个可滚动的容器,支持可以通过改变大小收缩整个窗口以为输入法腾出空间
android:keepScreenOn setKeepScreenOn(boolean) 指定是否该View的窗口在可见的时候总使屏幕常亮
android:layerType setLayerType(int,Paint) 指定在该View背后的层次类型(软件或硬件层)
android:layoutDirection setLayoutDirection(int) 指定布局绘制的方向(左到右,右到左等)
android:longClickable setLongClickable(boolean) 指定该View是否响应长按事件
android:minHeight setMinimumHeight(int) 设定该View的最小高度
android:minWidth setMinimumWidth(int) 设定该View的最小宽度
android:nextFocusDown setNextFocusDownId(int) 当下一个焦点为FOCUS_DOWN时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusForward setNextFocusForwardId(int) 当下一个焦点为FOCUS_FORWARD时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusLeft setNextFocusLeftId(int) 当下一个焦点为FOCUS_LEFT时,定义获得焦点的下一个View
android:nextFocusRight setNextFocusRightId(int) 当下一个焦点为FOCUS_RIGHT时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:nextFocusUp setNextFocusUpId(int) 当下一个焦点为FOCUS_UP时,定义获得焦点的下一个View。如果指定的View不存在或不可见,则报RuntimeException异常
android:onClick   当该View被单击时触发的方法名称
android:padding setPaddingRelative(int,int,int,int) 以像素值设置四条边的填充(View的边界和内容之间的空间)
android:paddingBottom setPaddingRelative(int,int,int,int) 以像素值设置底边的填充
android:paddingEnd setPaddingRelative(int,int,int,int) 以像素值设置右边的填充
android:paddingLeft setPadding(int,int,int,int) 以像素值设置左边的填充
android:paddingRight setPadding(int,int,int,int) 以像素值设置右边的填充
android:paddingStart setPaddingRelative(int,int,int,int) 以像素值设置左边的填充
android:paddingTop setPaddingRelative(int,int,int,int) 以像素值设置顶边的填充
android:requiresFadingEdge setVerticalFadingEdgeEnabled(boolean) 定义在滚动时哪个边应该被有阴影
android:rotation setRotation(float) View的旋转,以度为单位
android:rotationX setRotationX(float) View沿x轴的旋转,以度为单位
android:rotationY setRotationY(float) View沿y轴的旋转,以度为单位
android:saveEnabled setSaveEnabled(boolean) 若为false,则冻结后该View的所有状态都不会保存
android:scaleX setScaleX(float) View沿x轴的缩放
android:scaleY setScaleY(float) View沿y轴的缩放
android:scrollX   初始水平滚动偏移量,单位像素
android:scrollY   初始竖直滚动偏移量,单位像素
android:scrollbarAlwaysDrawHorizontalTrack   指定水平滚动条是否一直显示
android:scrollbarAlwaysDrawVerticalTrack   指定竖直滚动条是否一直显示
android:scrollbarDefaultDelayBeforeFade setScrollBarDefaultDelayBeforeFade(int) 设置滚动条等待隐藏的时间,单位毫秒
android:scrollbarFadeDuration setScrollBarFadeDuration(int) 设置滚动条隐藏的时间,单位毫秒
android:scrollbarSize setScrollBarSize(int) 设置竖直滚动条的宽度和水平滚动条的高度
android:scrollbarStyle setScrollBarStyle(int) 设置滚动条的样式和位置
android:scrollbarThumbHorizontal   设置水平滚动条的Thumbdrawable元素
android:scrollbarThumbVertical   设置竖直滚动条的Thumb的drawable`元素
android:scrollbarTrackHorizontal   设置水平滚动条的轨道的drawable元素
android:scrollbarTrackVertical   设置竖直滚动条的轨道的drawable元素
android:scrollbars   指定哪些滚动条应该显示
android:soundEffectsEnabled setSoundEffectsEnabled(boolean) 指定View是否开启点击或触摸等特殊事件的声音效果
android:tag   为该View提供一个标记,通过View.getTag()View.findViewwithTag()方法获得该View
android:textAlignment setTextAlignment(int) 定义文本的对齐
android:textDirection setTextDirection(int) 定义文本的方向
android:transformPivotX setPivotX(float) 旋转或缩放依赖的坐标轴点的x坐标
android:transformPivotY setPivotX(float) 旋转或缩放依赖的坐标轴点的y坐标
android:translationX setTranslationX(float) View在x方向上的移动
android:translationY setTranslationY(float) View在y方向上的移动
android:visibility setVisibility(int) 设置该View初始的可见性

View类可以设置的listener

listener类 设置方法 描述
View.OnApplyWindowInsetsListener setOnApplyWindowInsetsListener 接管该ViewWindows Insets应用策略
View.OnClickListener setOnClickListener 当该View被点击时触发的回调
View.OnCreateContextMenuListener setOnCreateContextMenuListener 当该View的上下文菜单正被构建时触发的回调
View.OnDragListener setOnDragListener 当该View接收到Drag事件时触发的回调
View.OnFocusChangeListener setOnFocusChangeListener 当该View焦点变化时触发的回调
View.OnGenericMotionListener setOnGenericMotionListener 当该View接收到一般的移动事件时触发的回调
View.OnKeyListener setOnKeyListener 当该View下硬件键盘被按下时触发的回调
View.OnLongClickListener setOnLongClickListener 当该View被按下并长期保持时触发的回调
View.OnSystemUiVisibilityChangeListener setOnSystemUiVisibilityChangeListener 当系统工具条的可见性改变时触发的回调
View.OnTouchListener setOnTouchListener 当该View接收到touch事件时触发的回调