4

最初のTextViewに複数行のテキストがある場合でも、2つのTextViewを並べてレイアウトしたいので、少し問題が発生しました。理想的には、次のTextViewはその直後に続く必要があります。説明するのは少し難しいので、私はそれを説明するためにこの写真を作りました:

(最初のTextViewにはタイトルが含まれ、2番目のTextViewには年が含まれます)

私は今、レイアウトハックとHtml.fromHtml()の使用の両方で、いくつかの異なることを試みてきましたが、これまでのところ何も機能していません。おそらく不可能ですが、私は確信したかっただけです。

4

2 に答える 2

5

これはの仕事のように聞こえSpannableます。2つのビューを実行する際の問題に気付いたようTextViewに、2行の例のの境界はまだ長方形であるため、テキストの最後に2番目のビューを配置するのは難しいです。HTMLは単純なタグ(太字、下線、見出し)で機能しますが、柔軟性が高すぎません。

解決策は、Spannable各「スパン」に特定のフォーマットが適用されたコンテンツのテキストoufを作成するために使用することです。結局のところ、結果全体を1つにまとめることができますTextView。何かのようなもの:

TextView tv; //Defined somewhere else

SpannableStringBuilder resultBuilder = new SpannableStringBuilder();
SpannableString item = new SpannableString("Long and Fancy Movie Title Here");
item.setSpan(new AbsoluteSizeSpan(18, true), 0, item.length(), 0);
resultBuilder.append(item);

SpannableString item = new SpannableString("(2011)");
item.setSpan(new AbsoluteSizeSpan(12, true), 0, item.length(), 0);
resultBuilder.append(item);

tv.setText(resultBuilder, TextView.BufferType.SPANNABLE);

にはさまざまなスパン定義がたくさんありますandroid.text.style。上記は、同じ文字列に2つの異なるテキストサイズを作成するための単なる例です。TextAppearanceSpanこれ、、、TypefaceSpanまたは他の組み合わせから必要なものを取得できるはずです。

HTH

于 2012-06-19T23:40:15.243 に答える
1

RelativeLayoutのTextViewを2つ並べるとうまくいく可能性がありますが、正しいhtml形式を追加した場合にHtml.fromHtmlが機能しない理由がわかりません。

于 2012-06-19T23:24:21.863 に答える