javascript - 单击时 react-native-material-dropdown 动画的问题

标签 javascript css reactjs react-native

我最近将 react-native-material-dropdown 添加到我的 React Native 应用程序中,我觉得它是一个很棒的库,但文档有时不清楚。

当我将这个库实现到我的代码中时,我遇到了这个问题,点击我的下拉菜单的动画坏了。

我查看了代码,下拉菜单应该是 TouchableWithoutFeedback,所以我想知道为什么我有这种小故障的视觉效果。

编辑:当我实现 renderBase 时,视觉效果看起来很糟糕,但如果我不这样做,我只能看到一个更小的视觉问题,即动画的阴影脱离了按钮一点点。

这是它的样子:

Dropdown animation

我的实现如下

import { Dropdown } from 'react-native-material-dropdown'

<DropdownView>
  <Dropdown
    containerStyle={styles.containerStyle}
    data={data}
    fontSize={hp('2.7%')}
    inputContainerStyle={styles.inputContainerStyle}
    itemCount={5}
    itemTextStyle={styles.itemTextStyle}
    labelExtractor={({ value, icon }) =>
      renderCheckboxRow(value, icon)
    }
    onChangeText={text => setCountryCode(text)}
    renderBase={({ value }) => renderCheckbox(value)}
    value={countryCode}
    valueExtractor={({ value }) => pickCountryCode(value)}
  />
</DropdownView>

renderCheckbox 返回这个

 <BaseCheckboxView>
    <Image source={icon} />
    <BaseCheckboxText>{value}</BaseCheckboxText>
  </BaseCheckboxView>

我的风格

const BaseCheckboxView = styled.View`
  align-items: center;
  flex-direction: row;
  justify-content: center;
  width: ${hp('16%')};
`

const Image = styled.Image``

const BaseCheckboxText = styled.Text`
  color: #000;
  font-family: 'Baloo-Regular';
  font-size: ${hp('4%')};
  margin-left: ${wp('2%')};
`

有什么线索吗?

最佳答案

我在更改 dropdownOffset 后遇到了类似的问题:

dropdownOffset={{top: 0, left: 0}}

在那之后,“波纹”效果不对齐,我通过像这样更改 rippleInsets 属性来修复它:

rippleInsets={{top: 0, bottom: 0, right: 0, left: 0}}

rippleInsets 的文档仅暗示 top 和 bottom 属性,但我的 typescript 提示该对象也缺少 left 和 right 属性。

希望这对您有所帮助!

关于javascript - 单击时 react-native-material-dropdown 动画的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56377093/

相关文章:

javascript - 使用javascript满足条件的电话号码验证

javascript - 限制外部 CSS 对本地 React 组件或 HTML 元素的影响

javascript - 动态减小文本框中的字体大小

html - -webkit-box-shadow 和 -moz-box-shadow 有何作用?

javascript - 如何检测 Kendo 中是否进行了过滤?

html - 验证消息包装

javascript - 从 Jest 测试 AWS Cognito 失败,但组件中的相同代码可以工作

javascript - 胜利堆栈中单杠的间距和大小?

javascript - 将阿拉伯日期值格式化为字符串 : new Date(). toLocaleDateString ('ar' ); => 'ddyyyy/m/'

javascript - 如何使用 Html5 模板忽略某些 javascript 库?