跳到主要内容
版本:0.84

TouchableNativeFeedback

提示

如果你在寻找一种更全面且更具前瞻性的方式来处理基于触摸的输入,可以查看 Pressable API。

一个用于让视图正确响应触摸的包装器(仅限 Android)。在 Android 上,此组件使用原生状态 drawable 来显示触摸反馈。

目前它只支持将单个 View 实例作为子节点,因为它的实现方式是用另一个带有一些额外属性设置的 RCTView 节点替换该 View。

原生反馈触摸组件的背景 drawable 可以通过 background 属性自定义。

示例​


参考

属性​

TouchableWithoutFeedback Props​

继承自 TouchableWithoutFeedback Props。


background​

决定将用于显示反馈的背景 drawable 类型。它接受一个带有 type 属性的对象,以及取决于 type 的额外数据。建议使用静态方法之一来生成该字典。

类型
backgroundPropType

useForeground​

设置为 true 时,将 ripple 效果添加到视图前景,而不是背景。如果你的某个子视图有自己的背景,或者你正在显示图片且不希望 ripple 被它们遮住,这会很有用。

请先检查 TouchableNativeFeedback.canUseNativeForeground(),因为这仅适用于 Android 6.0 及以上版本。如果你在旧版本上使用它,会收到警告并回退到背景模式。

类型
bool

hasTVPreferredFocus
Android
​

TV 首选焦点(参见 View 组件的文档)。

类型
bool

nextFocusDown
Android
​

TV 下一个向下焦点(参见 View 组件的文档)。

类型
number

nextFocusForward
Android
​

TV 下一个向前焦点(参见 View 组件的文档)。

类型
number

nextFocusLeft
Android
​

TV 下一个向左焦点(参见 View 组件的文档)。

类型
number

nextFocusRight
Android
​

TV 下一个向右焦点(参见 View 组件的文档)。

类型
number

nextFocusUp
Android
​

TV 下一个向上焦点(参见 View 组件的文档)。

Type
number

方法​

SelectableBackground()​

React TSX
static SelectableBackground(
rippleRadius: number | null,
): ThemeAttributeBackgroundPropType;

创建一个表示 Android 主题中可选元素默认背景的对象(?android:attr/selectableItemBackground)。rippleRadius 参数控制 ripple 效果的半径。


SelectableBackgroundBorderless()​

React TSX
static SelectableBackgroundBorderless(
rippleRadius: number | null,
): ThemeAttributeBackgroundPropType;

创建一个表示 Android 主题中无边框可选元素默认背景的对象(?android:attr/selectableItemBackgroundBorderless)。适用于 Android API 级别 21+。rippleRadius 参数控制 ripple 效果的半径。


Ripple()​

React TSX
static Ripple(
color: ColorValue,
borderless: boolean,
rippleRadius?: number | null,
): RippleBackgroundPropType;

创建一个表示指定颜色(字符串形式)的 ripple drawable 的对象。如果属性 borderless 的值为 true,ripple 将在视图边界之外渲染(例如原生 actionbar 按钮的行为)。此背景类型适用于 Android API 级别 21+。

参数:

名称类型必需描述
colorstring是ripple 颜色
borderlessboolean是ripple 是否可以在其边界之外渲染
rippleRadius?number否控制 ripple 效果的半径

canUseNativeForeground()​

React TSX
static canUseNativeForeground(): boolean;