我正在开发一个Android应用程序。我在同一行中有很多TextView。 但是当TextView变大时,它会转到一个新行,但不会对齐左边。
这就是我需要的:
这就是我现在所拥有的:
我的代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/arrow_right" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/due_after"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_due_days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="3dp"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:layout_marginStart="3dp"
android:text=" 500 days"
android:textColor="@color/red" />
<TextView
android:id="@+id/tv_redemption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/from_earn_date"
android:textColor="@color/black" />
</LinearLayout>
答案 0 :(得分:4)
使用单一文本视图显示数据,如果您希望文本具有不同颜色,请使用SpannableStringBuilder。
示例:
SpannableStringBuilder builder = new SpannableStringBuilder();
String red = "this is red";
SpannableString redSpannable= new SpannableString(red);
redSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, red.length(), 0);
builder.append(redSpannable);
String white = "this is white";
SpannableString whiteSpannable= new SpannableString(white);
whiteSpannable.setSpan(new ForegroundColorSpan(Color.WHITE), 0, white.length(), 0);
builder.append(whiteSpannable);
String blue = "this is blue";
SpannableString blueSpannable = new SpannableString(blue);
blueSpannable.setSpan(new ForegroundColorSpan(Color.BLUE), 0, blue.length(), 0);
builder.append(blueSpannable);
mTextView.setText(builder, BufferType.SPANNABLE);
答案 1 :(得分:1)
而不是使用三个textview将其作为单个textview并使用spannable字符串以使500day为红色
示例:
SpannableStringBuilder builder = new SpannableStringBuilder();
String str = "Due date after 500day from earned points date";
SpannableString mutableStr= new SpannableString(str);
redSpannable.setSpan(new ForegroundColorSpan(Color.RED), 15, 21, 0);
builder.append(mutableStr);
答案 2 :(得分:0)
从我可以看到,当您可以使用单个文本视图时,您正在使用两个单独的文本视图。
你可以连接&#34; 500天&#34;进入原始文本视图。
firstTextView.setText(getResources().getString(R.string.STRING_NAME, 500));
只要您的Res&gt; Values&gt; String.xml文件中包含该字符串。
<string name="STRING_NAME">Due date after %1$f from earned points date</string>