droid_wrap::android::view

Struct View

Source
pub struct View { /* private fields */ }
Expand description

此类代表用户界面组件的基本构建块。View 占据屏幕上的矩形区域,负责绘制和事件处理。View 是小部件的基类,用于创建交互式 UI 组件(按钮、文本字段等)。ViewGroup 子类是布局的基类,布局是不可见的容器,用于容纳其他 View(或其他 ViewGroup)并定义其布局属性。 开发人员指南 有关使用此类开发应用程序用户界面的信息,请阅读用户界面开发人员指南。 使用视图窗口中的所有视图都排列在一棵树中。您可以从代码中添加视图,也可以通过在一个或多个 XML 布局文件中指定视图树来添加视图。有许多专门的视图子类,它们充当控件或能够显示文本、图像或其他内容。创建视图树后,通常您可能希望执行以下几种常见操作:

  • 设置属性:例如,设置 android.widget.TextView 的文本。不同视图子类的可用属性和设置方法会有所不同。请注意,在构建时已知的属性可以在 XML 布局文件中设置。
  • 设置焦点:框架将处理移动焦点以响应用户输入。要强制将焦点移到特定视图,请调用 requestFocus。
  • 设置侦听器:视图允许客户端设置侦听器,当视图发生有趣的事情时,这些侦听器将收到通知。例如,所有视图都允许您设置一个侦听器,以便在视图获得或失去焦点时收到通知。您可以使用 setOnFocusChangeListener(View.OnFocusChangeListener) 注册此类侦听器。其他视图子类提供更专业的侦听器。例如,按钮会公开一个侦听器,以便在单击按钮时通知客户端。
  • 设置可见性:您可以使用 setVisibility(int) 隐藏或显示视图。注意:Android 框架负责测量、布局和绘制视图。除非您实际实施了 ViewGroup,否则您不应自己调用对视图执行这些操作的方法。 有关更多信息,请查阅官方文档。

Implementations§

Source§

impl View

Source

pub const NO_ID: i32 = -1i32

用于标记没有ID的View。

Source

pub const LAST_APP_AUTOFILL_ID: i32 = 1_073_741_823i32

赋予不属于活动的视图的最后一个 ID。

Source

pub const VISIBLE: i32 = 0i32

此视图可见。与 setVisibility 和 一起使用。

Source

pub const INVISIBLE: i32 = 4i32

此视图不可见,但出于布局目的它仍占用空间。与 setVisibility 和 一起使用。

Source

pub const GONE: i32 = 8i32

此视图是看不见的,并且没有任何空间用于布局目的。与setVisibility一起使用。

Source

pub fn new(context: &Context) -> Self

从代码创建视图时使用的简单构造函数。 context 视图在其中运行的上下文,通过它可以访问当前主题、资源等。

Source

pub fn announce_for_accessibility<CS: CharSequence>(&self, text: &CS)

发送 AccessibilityEvent 的便捷方法。TYPE_ANNOUNCEMENT AccessibilityEvent 建议无障碍服务向其用户宣布指定的文本。 注意:使用此 API 生成的事件不具有语义含义,仅适用于特殊情况。应用通常可以通过准确提供其 UI 的语义来实现正确的无障碍行为。它们不需要指定向用户宣布的具体内容。一般来说,只宣布转换,不要为按钮按下等简单操作生成确认消息。相反,请简明扼要地标记控件,对于重大的 UI 更改(如窗口更改),请使用 android.app.Activity.setTitle(CharSequence) 和 setAccessibilityPaneTitle(CharSequence)。使用 setAccessibilityLiveRegion(int) 通知用户用户界面内关键视图的更改。这些仍应谨慎使用,因为它们可能会在每次更新视图时生成通知。 text 通知文本。

Source

pub fn get_width(&self) -> i32

返回视图的宽度。 返回:视图的宽度(以像素为单位)。

Source

pub fn get_height(&self) -> i32

返回视图的高度。 返回:视图的高度(以像素为单位)。

Source

pub fn request_focus(&self) -> bool

调用此操作可以尝试将焦点集中到特定视图或其子视图之一。如果视图不可聚焦(isFocusable返回false),或者由于其他条件而无法聚焦(当设备处于触摸模式、不可见、未启用或没有大小时,在触摸模式下无法聚焦(isForusableInTouchMode)),则视图实际上不会聚焦。另请参阅focusSearch(int),这是用来表示有焦点,并希望视图的父母寻找下一个焦点的方法。这相当于用参数FOCUS_DOWN和null调用requestFocus(int, Rect)。 返回:这个视图或它的一个后代是否真的成为焦点。

Source

pub fn clear_focus(&self)

当此视图想要放弃焦点时调用。如果焦点被清除,则调用 onFocusChanged(boolean, int, Rect)。 注意:当不处于触摸模式时,框架将在焦点清除后尝试将焦点放在从顶部开始的第一个可聚焦视图上。因此,如果此视图是从顶部开始的第一个可获得焦点的视图,则将调用与清除焦点相关的所有回调,之后框架将焦点放在此视图上。

Source

pub fn find_focus(&self) -> Option<Self>

在以此视图为根的层次结构中查找当前具有焦点的视图。 返回:当前具有焦点的视图,如果找不到焦点视图,则返回 null。

Source

pub fn is_activated(&self) -> bool

指示此视图的激活状态。 返回:如果视图已激活,则返回 true,否则返回 false

Source

pub fn set_activated(&self, activated: bool)

更改此视图的激活状态。视图可以激活也可以不激活。请注意,激活与选择不同。选择是一种瞬时属性,表示用户当前正在与之交互的视图(层次结构)。激活是一种长期状态,用户可以将视图移入或移出。例如,在启用单选或多选的列表视图中,当前选择集中的视图处于激活状态。(嗯,是的,我们对这里的术语深感抱歉。)激活状态会向下传播到设置该状态的视图的子级。 activated 如果必须激活视图,则为 true,否则为 false

Source

pub fn get_x(&self) -> f32

此视图的可视 x 位置(以像素为单位)。这相当于 TranslationX 属性加上当前 Left 属性。 返回:此视图的可视 x 位置(以像素为单位)。

Source

pub fn set_x(&self, x: f32)

设置此视图的可视 x 位置(以像素为单位)。这相当于将 TranslationX 属性设置为传入的 x 值与当前 left 属性之间的差值。 x 此视图的可视 x 位置(以像素为单位)。

Source

pub fn get_y(&self) -> f32

此视图的视觉 y 位置(以像素为单位)。这相当于 TranslationY 属性加上当前的 Top 属性。 返回:此视图的视觉 y 位置(以像素为单位)。

Source

pub fn set_y(&self, y: f32)

设置此视图的视觉 y 位置(以像素为单位)。这相当于将 TranslationY 属性设置为传入的 y 值与当前 top 属性之间的差值。 y 此视图的视觉 y 位置(以像素为单位)。

Source

pub fn find_view_by_id(&self, id: i32) -> Option<Self>

查找具有给定 ID 的第一个后代视图,如果 ID 与 getId() 匹配,则查找视图本身,如果 ID 无效 (< 0) 或层次结构中没有匹配的视图,则返回 null。 注意:在大多数情况下 - 取决于编译器支持 - 生成的视图会自动转换为目标类类型。如果目标类类型不受约束,则可能需要显式转换。 返回:如果找到,则返回具有给定 ID 的视图,否则返回 null id 要搜索的 ID

Source

pub fn get_content_description<CS: CharSequence>(&self) -> Option<CS>

返回视图的内容描述。 注意:不要覆盖此方法,因为它不会影响呈现给无障碍服务的内容描述。您必须调用 setContentDescription(CharSequence) 来修改内容描述。 返回:内容描述

Source

pub fn set_content_description<CS: CharSequence>( &self, content_description: Option<CS>, )

设置视图的内容描述。内容描述简要描述视图,主要用于辅助功能支持,以确定应如何向用户呈现视图。对于没有文本表示的视图(如 android.widget.ImageButton),有用的内容描述会解释视图的作用。例如,用于拨打电话的带有电话图标的图像按钮可以使用“呼叫”作为其内容描述。用于保存文件的软盘图像可以使用“保存”。这应该省略角色或状态。角色是指视图的用户界面元素类型,例如按钮或复选框。状态是指视图经常变化的属性,例如按钮的开/关状态或音量滑块的音频级别。内容描述更新并不频繁,并且在元素的语义内容(而不是状态)发生变化时使用。例如,在音乐播放期间,播放按钮可能会更改为暂停按钮。 content_description 内容描述。

Source

pub fn set_id(&self, id: i32)

设置此视图的标识符。标识符在此视图的层次结构中不必唯一。标识符应为正数。 id 用于标识视图的数字

Source

pub fn get_id(&self) -> i32

返回此视图的标识符。 返回:用于标识视图的正整数,如果视图没有 ID,则返回 NO_ID

Source

pub fn set_on_click_listener<L: View_OnClickListener + JProxy>(&self, l: &L)

单击此视图时注册要调用的回调。如果此视图不可点击,则将设为可点击。 l 将运行的回调

Source

pub fn set_on_long_click_listener<L: View_OnLongClickListener + JProxy>( &self, l: &L, )

注册一个回调,当此视图被点击并按住时调用。如果此视图不是长按可点击的,则变为长按可点击的。 l 将运行的回调

Source

pub fn get_layout_params(&self) -> Option<ViewGroup_LayoutParams>

获取与此视图关联的 LayoutParams。所有视图都应具有布局参数。这些参数为此视图的父级提供参数,指定应如何排列。 ViewGroup.LayoutParams 有许多子类,这些子类对应于负责排列其子级的 ViewGroup 的不同子类。如果此视图未附加到父 ViewGroup 或 setLayoutParams(ViewGroup.LayoutParams) 未成功调用,则此方法可能返回 null。当视图附加到父 ViewGroup 时,此方法不得返回 null。 返回:与此视图关联的 LayoutParams,如果尚未设置参数,则返回 null

Source

pub fn set_layout_params(&self, params: &ViewGroup_LayoutParams)

设置与此视图相关的布局参数。这些参数为该视图的父级提供参数,指定应如何排列。ViewGroup 有许多子类。LayoutParams,这些对应于负责排列其子级的 ViewGroup 的不同子类。 params 此视图的布局参数,不能为空

Source

pub fn set_visibility(&self, visibility: i32)

设置此视图的可见性状态。 visibility VISIBLE、INVISIBLE 或 GONE 之一。

Source

pub fn get_visibility(&self) -> i32

返回此视图的可见性状态。 返回:VISIBLE、INVISIBLE 或 GONE 之一。

Source

pub fn perform_click(&self) -> bool

如果已定义,则调用此视图的 OnClickListener。执行与点击相关的所有常规操作:报告可访问性事件、播放声音等。 返回:如果已分配一个被调用的 OnClickListener,则返回 True,否则返回 false。

Source

pub fn is_clickable(&self) -> bool

指示此视图是否对点击事件作出反应。如果视图可点击,则返回 true,否则返回 false

Source

pub fn set_clickable(&self, clickable: bool)

启用或禁用此视图的点击事件。当视图可点击时,每次点击时它的状态都会更改为“按下”。子类应将视图设置为可点击,以便对用户的点击做出视觉反应。 clickable true 表示视图可点击,否则为 false

Source

pub fn set_allow_click_when_disabled(&self, clickable_when_disabled: bool)

禁用时启用或禁用此视图的单击事件。 clickable_when_disabled true使视图可单击,否则为false

Source

pub fn is_long_clickable(&self) -> bool

指示此视图是否对长按事件作出反应。 返回:如果视图可长按,则返回 true,否则返回 false

Source

pub fn set_long_clickable(&self, long_clickable: bool)

启用或禁用此视图的长按事件。当视图可长按时,它会对用户按住按钮的时间长于点击做出反应。此事件可以启动侦听器或上下文菜单。 long_clickable true 表示视图可长按,否则为 false

Source

pub fn is_context_clickable(&self) -> bool

指示此视图是否对上下文点击反应。 返回:如果视图是上下文可单击的,则为false,否则否则

Source

pub fn set_context_clickable(&self, context_clickable: bool)

启用或禁用此视图的上下文点击。此事件可以启动侦听器。 context_clickable true 表示使视图对上下文点击做出反应,否则为 false

Source

pub fn has_on_click_listeners(&self) -> bool

返回此视图是否具有附加的 OnClickListener。如果有侦听器,则返回 true,如果没有,则返回 false。

Source

pub fn has_on_long_click_listeners(&self) -> bool

返回此视图是否具有附加的 OnLongClickListener。如果有侦听器,则返回 true,如果没有,则返回 false。

Source

pub fn get_keep_screen_on(&self) -> bool

返回屏幕是否应保持开启,对应于 KEEP_SCREEN_ON 的当前值。 返回:如果设置了 KEEP_SCREEN_ON,则返回 true。

Source

pub fn set_keep_screen_on(&self, keep_screen_on: bool)

控制屏幕是否应保持开启,修改 KEEP_SCREEN_ON 的值。 keep_screen_on 提供 true 以设置 KEEP_SCREEN_ON。

Source

pub fn get_parent<VP: ViewParent>(&self) -> Option<VP>

获取此视图的父级。请注意,父级是 ViewParent,不一定是 View。 返回:此视图的父级。

Source

pub fn set_on_key_listener<L: View_OnKeyListener>(&self, l: &L)

注册一个回调,当此视图中按下硬件键时调用该回调。软件输入法中的按键通常不会触发此侦听器的方法。 l 要附加到此视图的按键侦听器

Source

pub fn has_ime_focus(&self) -> bool

如果此视图位于当前具有 IME 可聚焦状态的窗口中,则为 true。

Source

pub fn has_nested_scrolling_parent(&self) -> bool

如果此视图具有嵌套滚动父级,则返回 true。 嵌套滚动父级的存在表明此视图已启动嵌套滚动,并且已被视图层次结构中更高层次的祖先视图接受。 返回:此视图是否具有嵌套滚动父级

Source

pub fn get_tooltip<CS: CharSequence>(&self) -> Option<CS>

二进制兼容性存根。当我们最终完成 O API 时将被删除。

Source

pub fn get_tooltip_text<CS: CharSequence>(&self) -> Option<CS>

返回视图的工具提示文本。 注意:不要重写此方法,因为它不会影响工具提示中显示的文本。您必须调用 setTooltipText(CharSequence) 来修改工具提示文本。 返回:工具提示文本

Source

pub fn set_tooltip<CS: CharSequence>(&self, tooltip_text: Option<CS>)

二进制兼容性存根。当我们最终完成 O API 时将被删除。

Source

pub fn set_tooltip_text<CS: CharSequence>(&self, tooltip_text: Option<CS>)

设置工具提示文本,该文本将显示在视图旁边的小弹出窗口中。工具提示将显示在: 长按时,除非另有处理(通过 OnLongClickListener 或上下文菜单)。 悬停时,在指针停止移动后的短暂延迟后 注意:不要覆盖此方法,因为它不会影响工具提示中显示的文本。 tooltip_text 工具提示文本,如果不需要工具提示,则为 null。

Source

pub fn post_delayed<R: Runnable>(&self, action: &R, delay_millis: u64) -> bool

导致 Runnable 被添加到消息队列,在指定的时间过后运行。Runnable 将在用户界面线程上运行。 返回:如果 Runnable 成功放入消息队列,则返回 true。如果失败,则返回 false,通常是因为处理消息队列的 looper 正在退出。请注意,结果为 true 并不意味着 Runnable 将被处理 - 如果 looper 在消息传递时间发生之前退出,则消息将被丢弃。 action 将执行的 Runnable。 delay_millis Runnable 执行前的延迟(以毫秒为单位)。

Source

pub fn set_handwriting_delegator_callback<R: Runnable>( &self, callback: Option<&R>, )

设置一个回调,当触控笔 MotionEvent 在该视图的边界内发生时,应调用该回调。回调将从 UI 线程调用。 设置回调允许此视图充当手写委托器,以便可以通过触控笔在此委托器视图上的移动来启动委托编辑器视图的手写模式。回调实现应显示并聚焦委托编辑器视图。 如果为 isHandwritingDelegate() 返回 true 的视图在相同地触控笔 MotionEvent 序列正在进行时创建输入连接,则将为该视图启动手写模式。 一个常见的用例是自定义视图看起来像文本编辑器,但实际上不支持文本编辑本身,单击自定义视图会导致显示 EditText。为了在这种情况下支持手写启动,可以在自定义视图上调用此方法以将其配置为委托器。 EditText 应调用 setIsHandwritingDelegate 将其设置为委托。回调实现通常与显示 EditText 的单击侦听器实现相同。 如果传递了 null,则此视图将不再充当手写启动委托人。 callback 当触控笔 MotionEvent 在该视图的范围内发生时应调用的回调

Source

pub fn get_handwriting_delegator_callback<R: Runnable>(&self) -> Option<R>

返回由 setHandwritingDelegatorCallback 设置的回调,当触控笔 MotionEvent 在该视图的范围内发生时应调用该回调。该回调只能从 UI 线程调用。

Source

pub fn post<R: Runnable>(&self, action: &R) -> bool

导致 Runnable 被添加到消息队列。Runnable 将在用户界面线程上运行。 返回:如果 Runnable 成功放入消息队列,则返回 true。如果失败,则返回 false,通常是因为处理消息队列的循环程序正在退出。 action 将执行的 Runnable。

Source

pub fn post_on_animation<R: Runnable>(&self, action: &R)

使 Runnable 在下一个动画时间步骤执行。Runnable 将在用户界面线程上运行。 action 将执行的 Runnable。

Source

pub fn post_on_animation_delayed<R: Runnable>( &self, action: &R, delay_millis: u64, )

使 Runnable 在指定的时间量过去后在下一个动画时间步骤执行。 Runnable 将在用户界面线程上运行。 action 将执行的 Runnable。 delay_millis Runnable 执行前的延迟(以毫秒为单位)。

Source

pub fn remove_callbacks<R: Runnable>(&self, action: &R) -> bool

从消息队列中移除指定的 Runnable。 返回:如果此视图可以要求 Handler 移除 Runnable,则返回 true,否则返回 false。当返回值为 true 时,Runnable 可能已从消息队列中实际移除(例如,如果 Runnable 尚未在队列中)。 action 要从消息处理队列中移除的 Runnable

Methods from Deref<Target = GlobalRef>§

Source

pub fn as_obj(&self) -> &JObject<'static>

Get the object from the global ref

This borrows the ref and prevents it from being dropped as long as the JObject sticks around.

Methods from Deref<Target = JObject<'static>>§

Source

pub fn as_raw(&self) -> *mut _jobject

Returns the raw JNI pointer.

Trait Implementations§

Source§

impl Debug for View

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for View

Source§

type Target = GlobalRef

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl From<&GlobalRef> for View

Source§

fn from(obj: &GlobalRef) -> Self

Converts to this type from the input type.
Source§

impl Into<GlobalRef> for &View

Source§

fn into(self) -> GlobalRef

Converts this type into the (usually inferred) input type.
Source§

impl JObjNew for View

Source§

type Fields = ()

字段类型
Source§

fn _new(this: &GlobalRef, fields: Self::Fields) -> Self

从java对象创建本地对象。 this java对象引用。
Source§

fn null() -> Self
where Self: Sized, Self::Fields: Default,

创建空对象。
Source§

impl JObjRef for View

Source§

fn java_ref(&self) -> GlobalRef

获取java对象引用。
Source§

impl JType for View

Source§

const CLASS: &'static str = "android/view/View"

java类的名称。
Source§

const OBJECT_SIG: &'static str = "Landroid/view/View;"

对象的签名描述。
Source§

type Error = Error

错误类型。
Source§

const DIM: u8 = 0u8

数组维度,0表示不是数组
Source§

impl PartialEq for View

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ToString for View

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more

Auto Trait Implementations§

§

impl Freeze for View

§

impl RefUnwindSafe for View

§

impl Send for View

§

impl Sync for View

§

impl Unpin for View

§

impl UnwindSafe for View

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.