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) | View 的alpha 透明度属性,从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 | 设置水平滚动条的Thumb 的drawable 元素 | |
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 | 接管该View 的Windows 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 事件时触发的回调 |