- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一个如下所示的按钮组件。
TouchableOpacity 组件包裹在 LinearGradient 组件内。当我触摸按钮时,内部 View 的不透明度非常低。我知道这是 TouchableOpacity 的功能之一,但有没有办法禁用它?
我已经使用了 Prop activeOpacity 和 focusedOpacity 但它仍然无法正常渲染。
这是代码
import React from 'react';
import {
View,
Text,
TouchableOpacity,
Dimensions
} from 'react-native';
import LinearGradient from 'react-native-linear-gradient';
import em from './../../styles/calculateSize';
const deviceWidth = Dimensions.get('window').width;
const GradientButton = ({ propStyle, buttonText, onPress }) => {
const { centerEverything, buttonGradientStyle, buttonStyle, buttonTextStyle } = styles;
return (
<LinearGradient colors={['#FF7676', '#F54EA2']} style={[buttonGradientStyle, centerEverything]}>
<TouchableOpacity
style={[buttonStyle, centerEverything]}
activeOpacity={1}
focusedOpacity={1}
onPress={onPress}>
<Text style={buttonTextStyle}>{buttonText}</Text>
</TouchableOpacity>
</LinearGradient>
);
}
const styles = {
centerEverything: {
justifyContent: 'center',
alignItems: 'center',
},
buttonGradientStyle: {
height: 27,
width: deviceWidth * 0.23,
borderRadius: 5,
marginLeft: 5
},
buttonStyle: {
height: 24,
width: deviceWidth * 0.23 - 3,
backgroundColor: '#fff',
opacity: 0.1,
justifyContent: 'center',
borderRadius: 3,
},
buttonTextStyle: {
fontSize: em(0.75),
color: '#F54EA2',
backgroundColor: 'transparent',
}
}
export { GradientButton };
最佳答案
感谢Facebook React Native 社区上的Christian Tucker,设法发现了我在这里想要实现的目标的正确方法。
主要是为了去除 TouchableOpacity 渲染的视觉效果,我需要使用 TouchableWithoutFeedback,我一开始就知道了。
其次,即使我将 TouchableOpacity 替换为 TouchableWithoutFeedback,此组件结构仍会呈现错误。
这是正确的做法
return (
<TouchableWithoutFeedback onPress={onPress}>
<LinearGradient colors={['#FF7676', '#F54EA2']} style={[buttonGradientStyle, centerEverything]}>
<View style={[buttonStyle, centerEverything]} >
<Text style={buttonTextStyle}>{buttonText}</Text>
</View>
</LinearGradient>
</TouchableWithoutFeedback>
);
关于css - TouchableOpacity 在 onPress 期间隐藏 View 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43539467/
即使此文档 ( https://facebook.github.io/react-native/docs/gesture-responder-system.html ) 指出,触摸事件会传递给子级并且
我目前正在尝试在 TouchableOpacity 中设置图像。它没有显示,我坚持为什么会这样。如果你能帮忙,请告诉我。 TIA! 我基本上复制了这个:https://facebook.github.
Actions.portfoy()}> %{this.state.ana
Actions.portfoy()}> %{this.state.ana
(仅限iOS)如果在内部,则不响应: 它可以在模拟器中正常运行,但不能在真实设备中运行 keyboardShouldPersistTaps="always"没有任何区别 部分代码: this._on
我有以下组件 { console.log("Hello World }}> Hello World 然后我想将此组件包装在一个 HoC 中,它将 WrappedComponent 包装在一个
我正在制作约会应用程序,我在某一天有 6 个时间段。组件加载后,选定的插槽将存储到名为“notAvailableSlots”的常量中。如果“notAvailableSlots”中有相应的值,这意味着有
我正在使用 TouchableOpacity在我学习 react-native 时制作一个按钮。 但问题是,TouchableOpacity占据屏幕的 100% 宽度。但是,我想利用其中存在的组件来调
我试图调用一个在单击 onPress 时使用 props 传递的函数。下面是我的自定义组件。 DrawerItem.js import React from 'react'; import { V
在我的应用程序中,我有一行文本,同一行的副手是一个开关。单击开关会更改其值,但我希望整行都可以单击并更改其值。 我使用 TouchableOpacity 结束了这段代码: {this.setStat
我关注了这篇文章- React Native flex-box align icon and text制作一个标题如下的按钮: Work { this.setState(previ
我有一个应用程序,我想在其中将图像列表显示为网格,列表中的第一个元素是“添加”按钮。我还需要每个图像都是可触摸的。目前我的代码如下所示: class RNtest extends Component
如何在侧边菜单中实现到其他页面的 Activity 链接? 我正在使用这个例子https://github.com/react-native-fellowship/react-native-side-
我在 React Native 中有一个带有 onPress 事件的按钮。 我想要全类同学都这样 这是我的代码: Sign In wit
我有一个登录按钮,我想在按钮的中心放置一个登录文本,并在按钮的右边缘放置一个图像(适当缩放),远离文本。 目前我通过以下方式使用 Vector Icons 库中的图标: L
我正在制作一个 React Native 应用程序,其中有 2 个按钮/TouchableOpacity。在设置这些按钮的样式时,即使在各自的样式表中明确声明“纯色”边框样式,它们也会获得双边框。 (
我正在尝试在 TouchableOpacity 组件内设置一个水平的 ScrollView(出于必要的原因)。然而,TouchableOpacity 会覆盖任何水平滚动功能并执行 onPress,即使
我试图在纯文本旁边附上一些可触摸不透明度,但是,两个可触摸之间的纯文本与可触摸文本不一致。请指导如何解决这个问题。 By clicking Sign up, you agree to Company'
我正在关注 this教程并陷入动态 TouchableOpacity元素。出于某种原因,没有应用 flex 属性。当我使用 chrome 的开发工具查看元素时,我可以看到它们,但它们没有 flex 属
我创建了一个通用按钮,我希望它具有圆形边缘而不是方形。我的按钮组件是这样的: const Button = ({ onPress, children }) => { const { buttonS
我是一名优秀的程序员,十分优秀!