0
実際には、Spannable文字列内のテキスト間の行スペースを増やそうとしています。次に、改行文字のスパンサイズを大きくすることでそれを行いたいと思います。しかし、2番目の改行は影響を受けていないようです。Android:Spannable Stringの改行の高さを変更できない
まず、コードが動作することを示すための区切り文字として 'a'を使用します。
private fun getCenterSpannableText() : SpannableString {
val currency = "Currency"
val total = "Total"
val subtitle = "Subtitle"
val delimiter = "\n"
val finalStr = "$currency$delimiter$total$delimiter$subtitle"
val currencyIndex = finalStr.indexOf(currency)
val totalIndex = finalStr.indexOf(total)
val subtitleIndex = finalStr.indexOf(subtitle)
val s = SpannableString(finalStr)
s.setSpan(RelativeSizeSpan(1.4f), currencyIndex, currency.length, 0)
s.setSpan(ForegroundColorSpan(ContextUtil.instance.getColor(R.color.colorGrey5)), currencyIndex, currency.length, 0)
s.setSpan(RelativeSizeSpan(1.8f), totalIndex, totalIndex + total.length, 0)
s.setSpan(ForegroundColorSpan(ContextUtil.instance.getColor(R.color.colorGrey5)), totalIndex, totalIndex + total.length, 0)
s.setSpan(RelativeSizeSpan(1f), subtitleIndex, subtitleIndex + subtitle.length, 0)
s.setSpan(ForegroundColorSpan(ContextUtil.instance.getColor(R.color.colorGrey2)), subtitleIndex, subtitleIndex + subtitle.length, 0)
//make the \n have bigger fonts
s.setSpan(RelativeSizeSpan(2.5f), currencyIndex + currency.length, currencyIndex + currency.length + delimiter.length, 0)
s.setSpan(RelativeSizeSpan(2.5f), totalIndex + total.length , totalIndex + total.length + delimiter.length, 0)
return s
}
出力がこれです:それから私は "\ nを" に区切り文字を変更
、それが正しく表示されません:
イムは、それを実行していますAPI24エミュレータ
なぜにあなたのコードを変更しようとする場合があります意味 私はそれをしたいと思うでしょうか?私はすべての3つの値が別々の行にあるようにします – iori24
あなたはTotalとSubtitleの間のより大きな行間を必要としますか?私が示唆したことをやってみましたが、失敗しましたか、コードの1行を貼り付けるのは、もう一度説明しようとするよりもうまくいっていますか? 編集:私の悪い、答えを編集するつもりです。今は別の行にあるはずです。 – Bjelis
最後に改行を追加すると、より良い結果が得られます。次に、最後の新しい行に別のs.setSpan(RelativeSizeSpan()...)を追加し、最良の結果を得るために値を丸める必要があります。しかし、私はなぜそれが最後に1つを最後にする必要があるか分からない。ありがとうbtw – iori24