javascript - React原生响应式标题高度

标签 javascript reactjs react-native

我正在尝试设置标题高度,以便其响应平板电脑和智能手机。我尝试过使用弹性列:

const headerStyle = {
  paddingHorizontal: theme.metrics.mainPadding,
  paddingTop: 0,
  paddingBottom: 0,
  backgroundColor: theme.colors.blue,
  flex: 0.5,
  flexDirection: 'column',
};

但是,标题在平板电脑上看起来不错,但在智能手机上看起来太高了。

为不同设备设置尺寸的最佳方法是什么?

编辑:

我有这个功能:

export function em(value: number) {
  return unit * value;
}

我现在在我的样式表中使用它:

  headerHeight: em(6),
  headerImageWidth: em(3),
  headerImageHeight: em(3),
  headerLogoHeight: em(6),
  headerLogoWidth: em(20),

图像在平板电脑上看起来不错,但现在在智能手机上它太小了。如果我理解正确,我需要使用Dimensions.width在我的函数中设置适当的单位值?

智能手机 Smartphone

平板电脑 Tablet

最佳答案

我可以想到两种方法

使用弹性

<View style={{flex:1}}>
  <View style={{flex:0.2}}>
     <Text>Header</Text>
  </View>

  <View style={{flex:0.8}} />

</View>

您提到过使用 flex,但不起作用。我不确定您是否像上面那样使用它,尺寸应该与屏幕尺寸相关。

使用尺寸

如何使用Dimensions模块。它可用于获取窗口的宽度高度,您可以根据该值设置高度

import {
  Dimensions
} from 'react-native';
const winWidth = Dimensions.get('window').width;
const winHeight = Dimensions.get('window').height;


header = {
    height: winHeight * 0.2 // 20%
}

然后使用宽度和高度设置标题的高度(例如基于百分比)

关于javascript - React原生响应式标题高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45462417/

相关文章:

javascript - 如何在 React Native 上将 StackNavigator 与 DrawerNavigator 和 SwitchNavigator 一起使用?

javascript - 子菜单动态宽度

javascript - VSCode 用户代码片段在 jsx 中不起作用

reactjs - Material 用户界面 : Concise way to to define styled Components?

reactjs - 在 typescript 中强制执行子组件的属性类型

react-native - React Native 的 AsyncStorage 可能失败的案例有哪些?

javascript - CodePush react-native ios 失败

javascript - 如何使用selenium python获取 Canvas 后面的文本

javascript - 使用 Python 请求库发布到 .jsp 网站

javascript - 如何使用 JQuery 和 Material-Design-Lite 滚动到顶部