跳到主要内容

TouchableNativeFeedback

提示

如果你正在寻找一种更全面且面向未来的触摸输入处理方式,请查看 Pressable API

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

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

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

示例​


参考

属性​

TouchableWithoutFeedback Props​

继承 TouchableWithoutFeedback Props


background​

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

Type
backgroundPropType

useForeground​

设置为 true 可将 ripple 效果添加到视图的前景,而不是背景。这在以下情况下很有用:某个子视图有自己的背景,或者你正在显示图像等内容,并且不希望 ripple 被它们覆盖

请先检查 TouchableNativeFeedback.canUseNativeForeground(),因为这仅在 Android 6.0 及更高版本上可用。如果你尝试在更早版本上使用它,将会收到警告,并回退到 background

Type
bool

hasTVPreferredFocus
Android
​

TV 首选焦点(请参阅 View 组件的文档)

Type
bool

nextFocusDown
Android
​

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

Type
number

nextFocusForward
Android
​

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

Type
number

nextFocusLeft
Android
​

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

Type
number

nextFocusRight
Android
​

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

Type
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 level 21 及更高版本上可用。rippleRadius 参数控制 ripple 效果的半径


Ripple()​

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

创建一个对象,用于表示具有指定颜色(字符串)的 ripple drawable。如果属性 borderless 的计算结果为 true,ripple 将在视图边界之外渲染(原生 actionbar 按钮就是这种行为的示例)。此背景类型在 Android API level 21 及更高版本上可用

参数:

NameTypeRequiredDescription
colorstringYesripple 颜色
borderlessbooleanYesripple 是否可以在其边界之外渲染
rippleRadius?numberNo控制 ripple 效果的半径

canUseNativeForeground()​

React TSX
static canUseNativeForeground(): boolean;