Android端react-native-dropdown-picker展开时推挤下方视图如何解决
问题根源
你当前代码里dropDownContainerStyle设置了position: 'relative',相对定位的元素仍会占据正常文档流空间,展开时自然会把下方View向下推挤;同时你仅给iOS设置了父容器zIndex,安卓未配置层级也会引发布局异常。
解决步骤
- 将下拉容器的定位改为绝对定位,修改
dropDownContainerStyle中的position属性为absolute,让下拉菜单脱离正常文档流,展开时不会占用原有布局空间挤压其他元素。 - 给父容器统一配置zIndex,无需区分平台,zIndex值需要高于该选择器下方所有相邻元素的zIndex,保证下拉菜单展开时不会被其他元素遮挡。
- 根据实际布局调整
dropDownContainerStyle的top值,让下拉菜单紧贴选择器下方显示。
修改后参考代码
<View style={[styles.filterCompany, { zIndex: 10 }]}> <DropDownPicker items={colleguesList} open={showDropDown} setOpen={() => setShowDropDown(!showDropDown)} value={category} setValue={value => setCategory(value)} dropDownContainerStyle={{ width: 170, alignSelf: 'center', position: 'absolute', top: 50, // 可根据实际布局调整数值,保证菜单在选择器下方显示 borderColor: Colors.SBLighBlue, zIndex: 1000 }} listMode="SCROLLVIEW" style={{ width: 170, height: 40, alignSelf: 'center', marginTop: 10, backgroundColor: Colors.SBLighBlue, borderColor: Colors.SBLighBlue }} /> </View>
注意事项
如果修改后出现下拉菜单被截断的情况,检查父容器是否设置了overflow: hidden,如有则移除该属性即可。
内容的提问来源于stack exchange,提问作者Manko
相关产品推荐
相关产品推荐

