在react native中,我设计了一个示例,当我在不同的IOS设备中检查它时,这里是我的代码:
render() {
return (
<View style={styles.container}>
<View style={styles.body}>
<TouchableHighlight style={styles.facebook} >
<View style={styles.row}>
<Image style={styles.icon} source={require('image!fb')}/>
<Text style={styles.facebookText} >Continue with Facebook</Text>
</View>
</TouchableHighlight>
</View>
</View>
)
}
};
var styles = StyleSheet.create({
container:{
marginTop: 65,
flexDirection:'column',
flex:1,
backgroundColor:'transparent'
},
body:{
flex:.5
},
facebook:{
marginTop: 25,
height: 50,
padding: 10,
marginRight: 40,
marginLeft: 40,
backgroundColor: '#1A8A29',
},
row:{
flexDirection:'row',
},
facebookText:{
marginLeft: 8,
fontSize: 20,
color: 'white',
alignSelf:'center'
},
icon:{
marginTop: 3,
marginLeft: 5,
width: 25,
height: 25
}
})
当我签入iphone-6和5s字体问题即将到来,任何人帮助我解决这个问题,如何设置不同IOS设备的字体大小在反应原生任何帮助很多通知
为应用程序创建通用样式。在所有样式组件中重用此默认样式属性。
来源/通用/样式.js
import { Dimensions } from 'react-native';
const { width, height } = Dimensions.get('window');
export const ColorPrimary = '#5CFE48';
export const SmallPhone = () => {
if(width<=320) // Here you could use "react-native-device-info" to get device information.
return true
else
return false
}
在组件样式中导入通用样式文件。
import { SmallPhone, ColorPrimary } from '../../common/style';
...
...
const styles = StyleSheet.create({
headerLabel: {
fontSize: SmallPhone() ? 14:26,
color: ColorPrimary
}
});
您还可以直接为每个设备分配通用样式的特定字体大小.js只需调用SmallPhone
函数,而不是使用三元运算符即可。
只是一个概念,但我会试着遵循:
const Dimensions = require('Dimensions');
const Viewport = Dimensions.get('window');
const IPHONE6_WIDTH = 750; // check this, since I'm not sure about iPhone 6 width
class YourComponent extends React.Component {
constructor(props) {
super(props);
}
getFontSize() {
return ({
fontSize: ((Viewport.width * Viewport.scale) === IPHONE6_WIDTH) ? 14 : 16
});
}
render() {
<View>
<Text style={[styles.facebookText, this.getFontSize()]}>Continue with Facebook</Text>
</View>
}
}
< s >我为我的项目编写了以下代码:
在文件:多分辨率.js
我有:
export function getCorrectFontSizeForScreen(PixelRatio, screenWidth, screenHeight, currentFont){
let devRatio = PixelRatio.get();
let factor = (((screenWidth*devRatio)/320)+((screenHeight*devRatio)/640))/2.0;
let maxFontDifferFactor = 5; //the maximum pixels of font size we can go up or down
// console.log("The factor is: "+factor);
if(factor<=1){
return currentFont-float2int(maxFontDifferFactor*0.3);
}else if((factor>=1) && (factor<=1.6)){
return currentFont-float2int(maxFontDifferFactor*0.1);
}else if((factor>=1.6) && (factor<=2)){
return currentFont;
}else if((factor>=2) && (factor<=3)){
return currentFont+float2int(maxFontDifferFactor*0.65);
}else if (factor>=3){
return currentFont+float2int(maxFontDifferFactor);
}
}
function float2int (value) {
return value | 0;
}
然后,在每个反应原生组件上,我都会这样做:
import { PixelRatio } from 'react-native';
import {getCorrectFontSizeForScreen} from './multiResolution'
import Dimensions from 'Dimensions';
const {height:h, width:w} = Dimensions.get('window'); // Screen dimensions in current orientation
然后在我的风格
上,我做了:
var portraitStyles = StyleSheet.create({
titleText: {
fontSize: getCorrectFontSizeForScreen(PixelRatio, w,h,27),//magic takes place here
},
});
这是惯例,但对我来说效果很好。
另外(与你的问题无关,但我还是要说),我使用与屏幕宽度和屏幕高度相关的宽度和高度,如下所示:
aStyleForAnElement:{ //this element will occupy
width: w*0.55, //55% of the screen width
height:h*0.05 //5% of the screen height
}
到目前为止,这就是我在项目中支持不同屏幕尺寸的方式。
新答案:
随着时间的推移,我们学习。在我写这篇文章的时候,我没有其他解决方案来管理字体大小,而不是使用自定义代码,但现在我不需要做任何这些:
我只是告诉我们的设计师设计可用的最低分辨率320x480(并给我以点而不是像素为单位的字体大小),然后在设计320x480时只使用点而不是像素。
320x480以上的所有屏幕都将使用 react-native 自动处理,我根本不需要编写任何花哨的代码来自动管理它。
我的组件现在看起来就像这样:
BUTTON_TEXT: {
textAlign: 'center',
fontSize: 16, // this is 16 points
color: 'white',
backgroundColor: 'transparent',
},
本文向大家介绍为不同大小的设备设置不同CSS样式规则的媒体查询,包括了为不同大小的设备设置不同CSS样式规则的媒体查询的使用技巧和注意事项,需要的朋友参考一下 要为不同的CSS样式规则设置媒体查询,您可以尝试运行以下代码- 示例
null null
问题内容: 我有一个ListView,它显示TextViews的列表。我希望每个TextView以适当的字体显示。作为字体String []数组的一部分出现在ListView中的字体名称的拼写与创建字体时的拼写相同。 和XML: 为什么我不能在ListView中获得每个TextView正确的字体? 问题答案:
问题内容: 我正在为iPhone开发一个快速的应用程序。我的应用程序中有一个模式视图,我只想使用纵向视图。 我的问题是,如何以编程方式强制手机不允许旋转?换句话说,我正在寻找的代码不允许以横向模式显示模式视图(打开人像旋转锁定)。 这仅用于1模态视图,因此我无法关闭整个应用程序的旋转,否则我将完全禁用旋转。 我在这里的研究中找到了代码, 但如果有帮助,它在目标C中。谢谢! 问题答案: 您可以将这些
我正在为iPhone开发一个swift应用程序。我的应用程序中有一个模态视图,我只想在纵向视图中。 我的问题是,如何通过编程强制手机不允许旋转?换句话说,我正在寻找不允许在横向模式下显示模式视图的代码(打开纵向旋转锁定)。 这只是一个模态视图,所以我不能关闭整个应用程序的旋转,否则我会完全禁用旋转。 我在这里的研究中发现了代码,但它是在目标C中,以防有所帮助。谢谢
Meta:- IOS仿真器设备v10.3 Appium java-client V5.0.0 beta8 硒v3.4.0 实际上,我试图在设备中使用自动化设置。我尝试了以下代码,它在设备上运行良好,而在上抛出异常: 例外情况: WebDriverException:方法尚未实现(警告:服务器未提供任何stacktrace信息) 当我尝试使用JavascriptExecutor作为: Unsuppo