2016-04-19 32 views
1

私のlogcatからこれらの2行は、両方の行を参照してください同じ正確な長さですが、テキストの文字列を表示していないことができAndroidのTextViewの複数行の書式

04-19 13:57:44.918 26962-26962/ts.kiosk.app.checkout E/java.lang.StackTraceElement: "Tendered Amount:     Rs.  0.00" 
04-19 13:57:44.919 26962-26962/ts.kiosk.app.checkout E/java.lang.StackTraceElement: "Change Due:       Rs.  0.00" 

String.fortmat()でフォーマットされた文字列であります彼らがするフォーマットされたまったく同じ:

String.format("%-25s Rs. %2$8.2f", "Tendered Amount:", formatCentsToCurrency(checkoutBasket.tenderedAmount)); 

String.format("%-25s Rs. %2$8.2f", "Change Due:", formatCentsToCurrency(checkoutBasket.changeDue)); 

だから、これはTextViewに並んでどのようにそのです:

"Tendered Amount:      Rs.  0.00" 
"Change Due:       Rs.  0.00" 

私は私のTextViewがフォーマッティングsomewhowをめちゃくちゃにされたと思っています:

     <TextView 
         android:id="@+id/text_receipt" 
         android:layout_width="wrap_content" 
         android:layout_height="match_parent" 
         style="@style/popUpReceiptText" 
         android:text="@string/popup_detail_description_default" 
         android:gravity="left" 
         android:layout_gravity="center_horizontal"/> 

actual TextEdit

+0

あなたはどのような問題のスクリーンショットを追加できますありますか?あなたの説明からわかりにくいです –

+0

TextViewでどのように位置がずれているかを示すテキストを追加しました – Mike6679

+0

タブを使ってみましたか? '\ t' –

答えて

1

正解、と私は以前に発見している必要があり、実際にそう単純:

を私は単純に追加しました:私のTextViewに

android:typeface="monospace" 

+0

これは正解です。私はこれを理解しようと1時間も無駄にしただけで、フォントについては決して考えなかった。 –

0

Androidデバイスがそうであっても制御された間隔で、デフォルトでは等幅フォントを使用していない、左揃えることは困難となり、同じTextViewで

これを解決するには、レイアウトを変更します。考え方は、1行につき2つのTextViewを実装することです.1つはalignParentLeft=trueで、もう1つはの中にalignParentRight=trueです。

+0

hmmm、okしかし、私は各行にトークンの数が変わっています(2以上、3または4でも可能です)。テキストをキャンバスに描いているときにモノスペースフォントを指定できると思いますか? – Mike6679

+0

書道(https://github.com/chrisjenx/Calligraphy)を使用してサードパーティのフォントをレンダリングすることができます。しかし、最も簡単な方法は、4つのTextViewを使用し、 'GONE'または' VISIBLE'を切り替えることです。 –

+0

@ Some Noob Student:ありがとうございますが、私は文字列フォーマットのトークンの配列を持っている私の質問のパラメータを与えて、簡単に手を引くことはありません。 – Mike6679

0

Textviewを使用する代わりに、値を行と列に自動的に割り当てるTableLayoutを使用できます。私にとって

関連する問題