在TextView中多重alignment?

我有一个像下面的TextView。 我用这段代码为文本的一部分设置了灰色。

// Prepare result text. final String resultText = text + "\n\n" + dictionaryName; final SpannableString styledResultText = new SpannableString(resultText); styledResultText.setSpan(new ForegroundColorSpan(Color.GRAY), text.length() + 2, text.length() + 2 + dictionaryName.length(), 0); resultTextView.setText(styledResultText); 

现在我想为它设置alignment。 怎么做? Android没有用于alignment的任何span类。 我找不到像“AlignmentSpan”这样的东西。

在这里输入图像说明

Solutions Collecting From Web of "在TextView中多重alignment?"

AFAIK这是不可能的。 我真的希望把这些作为两个不同的领域。 好像你有数据分开,为什么不为灰色文本(dictionaryName)创build一个单独的TextView?

为了这个原因,我试图尽量less用spannables。

虽然它真的很迟才回答,但我认为它至less可以帮到别人。 将此添加到您的代码中。

 styledResultText.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_OPPOSITE), text.length() + 2, text.length() + 2 + dictionaryName.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

Alignment.ALIGN_OPPOSITE相当于右侧。

Alignment.ALIGN_NORMAL是左侧的等价物。

我认为你应该把文本分成多个string,把它们放在单独的textview中,然后逐个alignment。

希望这可以帮助。

如果resultText始终是右alignment的,请将gravity =“right”属性添加到resultTextView而不是尝试将文本与样式化的可跨越string右alignment。 这是假设灰色文本是在一个单独的TextView比主文本。

在xml中为结果(灰色)文本:

 <TextView android:id="@+id/resultTextView" android:gravity="right" android:layout_width="fill_parent" />