2017-05-17 17 views
0

私は、ドロップキャップ付きの段落を出力するReact Nativeアプリで機能を作ろうとしていました。ここで私が使用しているコードです:ネイティブIOS/Androidスタイルの違いに反応する

export function returnFirstParagraph(contentRef) { 
return (
    <View> 
     <View style={{ flex: 1, flexDirection: 'row', marginTop: 40, marginBottom: 10 }}> 
     <Text style={{ fontSize: 16, lineHeight: 28, alignSelf: 'flex-start' }}> 
      <Text style={{ fontSize: 40, lineHeight: 28, }}> 
      {contentRef.charAt(0)} 
      </Text> 
      {contentRef.slice(1)} 
     </Text> 
     </View> 
    </View> 
); 
} 

contentRefは、単に別のファイルから渡された文字列で、関連するテキストが含まれています。ここで

iOSの出力です: iOS output

そして、ここでAndroidのバージョンです:あなたが見ることができるように Android output

は、iOSのバージョンは、最初の行の先頭をカット、下パディング/マージンを追加最初の行は正しく見えません。一方、アンドロイド版は期待通りに出力されています。

これはなぜ起こっているのでしょうか?

編集: コードからlineHeightを削除することをお勧めしました。これは、物事を変更しましたが、問題を解決していない:

のiOS: iOS no line spacing

アンドロイド: android no line spacing

答えて

0

問題がlineHeight値です。それを削除して、以下のように試してください。

<View style={{ flexDirection: 'row', marginTop: 40, marginBottom: 10 }}> 
    <Text style={{ fontSize: 16, padding: 20 }}> 
     <Text style={{ fontSize: 40}}> 
     {contentRef.charAt(0)} 
     </Text> 
     <Text style={{ lineHeight: 28}}> 
     {contentRef.slice(1)} 
     </Text> 
    </Text> 
    </View> 
+0

これは違いがありますが、iOSでは残りのスペースよりも最初の行の方が大きなスペースが残っています。また、UIには行間隔が必要です。段落行間隔は、その間に適切な量の垂直の空白を持つことを意味します。 Androidのバージョンでは1トンのスペースが追加されました。私は元の質問を更新しました。これは –

+0

が最上部にパディングを設定していることを示しています。 – arjun

+0

悲しいことに、そうでなければ、パディングはテキスト要素の周りにブロックとして現れ、何らかの方法で行間隔に影響を与えません。 –

関連する問題