Skip to content

Commit cde4145

Browse files
committed
fix(SpeedDial):修改SpeedDial快速连点问题 #389
1 parent e631dde commit cde4145

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

example/examples/src/routes/SpeedDial/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export default class Index extends Component<IndexProps, IndexState> {
4242
children={[
4343
{
4444
icon: <Icon name="plus" color="#fff" size={18} />,
45-
title: <Text>'Add'</Text>,
45+
title: <Text>Add</Text>,
4646
onPress: () => console.log('Add'),
4747
},
4848
{

packages/core/src/SpeedDial/index.tsx

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ function SpeedDial(props: SpeedDialProps) {
6868
const pan: Animated.ValueXY = useRef(new Animated.ValueXY()).current;
6969
const panResponder = useRef(
7070
PanResponder.create({
71-
onMoveShouldSetPanResponder: () => true,
71+
onMoveShouldSetPanResponder: () => isDrag,
7272
onPanResponderGrant: () => {
7373
pan.setOffset({
7474
x: (pan.x as PanXY)._value,
@@ -136,24 +136,30 @@ function SpeedDial(props: SpeedDialProps) {
136136
return (
137137
<View>
138138
<Animated.View
139-
style={[styles.viewPosition, { transform: [{ translateX: pan.x }, { translateY: pan.y }] }]}
139+
style={[
140+
styles.viewPosition,
141+
{
142+
bottom: bottom - MainHeight,
143+
right: right,
144+
},
145+
{ transform: [{ translateX: pan.x }, { translateY: pan.y }] },
146+
]}
140147
// {...panResponder.panHandlers}
141148
>
142-
{success &&
143-
children.map((item, i) => (
144-
<Animated.View
145-
style={[
146-
styles.fadingContainer,
147-
{
148-
// Bind opacity to animated value
149-
opacity: fadeAnim[i],
150-
},
151-
]}
152-
key={i}
153-
>
154-
<Item {...item} move={panResponder.panHandlers} />
155-
</Animated.View>
156-
))}
149+
{children.map((item, i) => (
150+
<Animated.View
151+
style={[
152+
styles.fadingContainer,
153+
{
154+
// Bind opacity to animated value
155+
opacity: fadeAnim[i],
156+
},
157+
]}
158+
key={i}
159+
>
160+
<Item {...item} move={panResponder.panHandlers} />
161+
</Animated.View>
162+
))}
157163

158164
<View {...panResponder.panHandlers} style={{ alignItems: 'flex-end' }}>
159165
<TouchableOpacity activeOpacity={1} onPress={onOpenHome}>
@@ -174,8 +180,6 @@ const styles = StyleSheet.create({
174180
},
175181
viewPosition: {
176182
position: 'absolute',
177-
bottom: 350 - MainHeight,
178-
right: 40,
179183
},
180184

181185
homeContainer: {

0 commit comments

Comments
 (0)