React-Native Android 中隐藏的元素溢出

新手上路,请多包涵

我在这里有一个应用程序,我需要将徽标放在导航栏中。那需要溢出场景布局。在 Ios 中运行良好,没有问题,但在 android 中似乎他不工作。我把代码放在图像的底部。如您所见,我使用 EStyleSheet 以便让我使用 %.

IOS

在此处输入图像描述

安卓

在此处输入图像描述

 import React from 'react';
import { Scene, Router } from 'react-native-router-flux';
import EStyleSheet from 'react-native-extended-stylesheet';
import { View, Platform } from 'react-native';
import { SmallLogo } from './components';
import { checkColor } from './helpers';
import {
  HomeScreen,
  ImagePickerScreen,
  WaitingResponseScreen,
  ResultsScreen
} from './modules';
import Colors from '../constants/Colors';

const styles = EStyleSheet.create({
  navStyle: {
    flex: 1,
    marginTop: '5%',
    alignItems: 'center',
  },
  logoCircle: {
    backgroundColor: '$whiteColor',
    height: 60,
    width: 60,
    borderRadius: 30,
    justifyContent: 'center',
    alignItems: 'center'
  }
});

const logoNav = result => (
  <View style={styles.navStyle}>
    <View style={styles.logoCircle}>
      <SmallLogo color={checkColor(result)} />
    </View>
  </View>
);

const pdTop = Platform.OS === 'ios' ? 64 : 54;

export default () => (
  <Router
    sceneStyle={{ paddingTop: pdTop }}
    navigationBarStyle={{ backgroundColor: Colors.greenColor }}
    renderTitle={props => {
      if (props.result) {
        return logoNav(props.result);
      }
      return logoNav(null);
    }}
    backButtonTextStyle={{ color: Colors.whiteColor }}
    leftButtonIconStyle={{ tintColor: Colors.whiteColor }}
  >
    <Scene
      key="home"
      component={HomeScreen}
    />
    <Scene
      key="imagesPicker"
      hideBackImage
      component={ImagePickerScreen}
    />
    <Scene
      key="waitingResponse"
      backTitle="Back"
      component={WaitingResponseScreen}
    />
    <Scene
      key="results"
      backTitle="Back"
      initial
      component={ResultsScreen}
    />
  </Router>
);

原文由 EQuimper 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 768
2 个回答

在 Android 中,您不能在组件边界之外进行绘制,这是一件非常烦人的事情。我通常会采取以下解决方法:将您的组件包装在一个新的 <View> 中,它同时包装了以前的容器和溢出的数据。 Set the view backgroundColor to 'transparent' so that it is invisible, and the pointerEvents prop to 'box-none' , so that events get propagated to children .视图的尺寸应该是前一个顶部组件加上溢出的尺寸(在您的情况下,它只是高度),但我认为这在某些情况下也应该很好地与 Flexbox 一起使用。

原文由 martinarroyo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题