rn开发的样式问题

1.button组件

不能在样式中,改变背景颜色,字体样式等。

可以在外部的view组件中,一般在项目中使用TouchableOpacity(TouchableHighlight)、Text结合使用

2.view组件

默认flex-direction:column   flex布局。

3.<Text></Text>

包裹在View元素中的Text表现为block,可以设置margin和padding的各种属性;包裹在Text元素中的Text表现为inline元素,不能设置其marginTop和marginBottom, padding等用于block元素的属性。

4.flatlist上滑加载,不要嵌套到scrollView中。会因为高度问题报错。其父级必须设置高度。

5.设置虚线时,View设置虚线时,必须设置borderRadius:不为0  ,borderWidth  、borderColor、三个缺一不可。

6.rn中的position,只有relative和absolute ,而且使用position:absolute时,不用定义父级的relative。

7.<Image>组件

require引入图片,必须是一个常量。

8.ios端的borderRadius失效,一般采用overflow:'hidden',进行改变。

9.rpx 、dp、px之间的转换关系

dp与px之间的关系:

像素密度:屏幕分辨率(240x320)/物理尺寸(1.5英寸x2英寸) =160dpi  

DPI:像素/英寸。

Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。

例如界面上有一个长度为“80dp”的图片,那么它在240dpi的手机上实际显示为80x1.5=120px,在320dpi的手机上实际显示为80x2=160px。

dip与dp在android上相同。

rpx(responsive pixel): 是微信小程序解决自适应屏幕尺寸的尺寸单位。

微信规定的是一个是750px,      1rpx = 屏幕宽度/750 px

rem:  相对长度单位,只是相对于根元素的。调整根元素,所有全部的样式跟随改变。
em:   em是相对长度单位。相对于当前对象内文本的字体尺寸。 em会继承父级元素的字体大小。

pt :    绝对长度单位 ,逻辑像素,一个专用的印刷单位“磅”,大小为1/72英寸。  pt= px * 3/4 

而 pt 和 px 的使用区别,只有当用户改变默认的 96DPI 下才会产生:使用 px 定义文字,无论用户怎么设置,都不会改变大小;使用 pt 定义文字,当用户设置超过 96DPI 的值,数值越大,字体就越大。

10.将一个块级元素在一个位置水平垂直居中,父级和子级都有固定的宽高,

  position: 'absolute',
  left: '50%',
  top: '50%',
  transform: [{ translateX: -rpx(10) }, { translateY: -rpx(10) }]

11.style布局样式怕,采用数组时,右边的会执行,覆盖掉前面的样式。不推荐数组中既有行内样式和css样式。

12.View控件中设置padding,在ios端不生效  ,解决方法:设置margin

13.marginHorizontal number//设置item的水平外边距       marginVertical number//设置item的垂直外边距 

     paddingHorizontal   //设置水平内边距                     paddingVertical     //设置垂直内边距

 

posted @ 2021-01-28 22:18  yaqian96  阅读(820)  评论(0)    收藏  举报