2016-11-15 74 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>