2016-11-15 55 views
0

我正在开发一个Android应用程序。我在同一行中有很多TextViews。 但是,当TextView变大时,它会进入一个新行,但不会与左侧对齐。Android - 对齐textViews问题

这就是我需要:

enter image description here

这是我现在有:

enter image description here

我的代码:

<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> 

回答

4

使用单一的TextView到显示数据,如果你想要的文本不同的颜色使用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

而是具有三个textviews使其单TextView的,为了使500天为红色

示例使用spannable字符串:

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); 
0

从什么当您可以使用单个文本视图时,我可以看到您正在使用两个单独的文本视图。

您可以将“500天”拼接成原始文本视图。

firstTextView.setText(getResources().getString(R.string.STRING_NAME, 500)); 

只要Res> Values> String.xml文件中包含字符串即可。

<string name="STRING_NAME">Due date after %1$f from earned points date</string>