2015-10-27 29 views
0

我是React Native的新手,我对Flexbox自动将内容自动适合屏幕尺寸感到满意。反应原生在不同显示器上的相同尺寸的圆圈

只要我使用正方形,这个效果很好,但是当涉及到圆时,似乎必须使用像素指定圆的大小。 发展到不同的屏幕时,这显然不是最佳的大小。

我一直在使用PixelRatio这样的尝试:

height: 90 * pixelRatio, 
width: 90 * pixelRatio, 
borderRadius: 45 * pixelRatio, 

这使得好一点,但似乎仍然是圆的大小一个巨大的不同,因为它出现在iPhone 6 VS iPhone 6加。

有什么办法可以使用flexbox自动创建一个圆的大小,就像它可以用正方形一样吗?

还有另一种方法可以确保圆圈在不同的设备上显示相同吗?

+0

您是否尝试过使用动态尺寸?看看这个http://stackoverflow.com/a/38715215/5574199 –

回答

1

AFAIK,您输入的宽度和高度值是与设备无关的像素。这意味着它们将根据手中设备的像素密度进行缩放。 pixelRatio将使其非常依赖于设备。 必须尝试它没有pixelRatio因素

height:90, 
width:90, 
borderRadius:45 
+0

感谢您的回答。你是对的 - 删除pixelRatio确实使差异变小,但在iPhone 5s和6s plus上显示圆圈的方式似乎仍然存在很大差异。如果有一种方法让圆圈使用flexbox跟随父视图的大小,那将会很好。 – Moeskjaer

+0

您可以创建一个视图,该视图会向父级弯曲并使用onLayout属性来获取宽度/高度并相应地设置边框半径。如果我们有%代表,事情会变得更容易,但反应原生还没有 –

相关问题