2016-11-15 7 views
0

私はアンドロイドアプリケーションを開発しています。そして私は同じ行にたくさんのTextViewを持っています。 しかし、TextViewが大きくなると、新しい行に移動しますが、左に揃えません。Android - align 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を使用します。

例:赤い色として代わりに3 textviewsを持つの

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

単一のTextViewとしてそれを作ると500dayを作るために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

何から1つのテキストビューを使用できる場合、2つの別々のテキストビューを使用しているのがわかります。

「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> 
関連する問題