質問: androidの行の高さを適切に設定する方法は? 私はuxアーキテクトであり、ほとんどが後輩であるandroid開発者のチームと協力しています。 androidで行の高さを適切に設定する際に問題が発生しています。マテリアルデザインの仕様をアプリのガイドとして使用しています。特に、ここで行の高さの仕様を確認できます。 https://material.google.com/style/typography.html#typography-line-height 例としてbody 2を使用してみましょう。仕様では、タイプは13spまたは14spであり、先頭(行の高さ-同じこと)は24dpでなければなりません。問題は次のとおりです。これらの開発者は、コードでそのような行の高さを設定する方法はないと言っています。代わりに、2行のテキスト間の距離を測定し、その測定値を与えるように指示されています-4dpとしましょう。彼らは私たちが使用しているテキストのスタイルごとにこれを望んでいます。スペックには、sketch> zepelinフローを使用しています。24spの先頭を持つ13spのフォントスタイル(コードでは簡単にクラス/スタイルになります)を作成できて、先頭を設定できず、代わりに3番目のメジャーを追加する必要があるのは奇妙に思えますミックス。 sketchやzepelinには、「ライン間」のような測定のための場所はありません。これは実際に行われている方法ですか、行の高さを設定する適切な方法はありますか?
回答: これについては、android開発者の観点から説明します。行の高さは通常テキストサイズ+「パディング」上部/下部を意味しますしたがって、デザイナーが行の高さ19spとテキストサイズ15spを記述する場合、余分なパディング4spが必要であることを意味します。 19sp-15sp = 4sp。 レイアウトに実装するには、linespacingextra属性を使用します。<textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="15sp" android:linespacingextra="4sp" android:fontfamily="sans-serif" tools:text="stackoverflow is awesome" /> 行の高さを実現する別の方法は、スケールを使用することです。たとえば、1.2。つまり、間隔はテキストサイズの120%です。上記の例では、行の高さは19spで、テキストサイズは15spです。それをスケールに変換すると、なる。 19/15 = 1.26 レイアウトに実装するには、linespacingmultiplier属性を使用します。<textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="15sp" androdi:linespacingmultiplier="1.26" android:fontfamily="sans-serif" tools:text="stackoverflow is awesome" />