2016-08-30 8 views
0

RelativeLayoutにはランダムにデータからプログラムで作成された2つの文字が含まれています。 1つは1行に揃えられ、もう1つは同じ行に右揃えされます。 TV1のデータが長すぎて、TV2の左端に到達すると、現在重複しています。私はそれらの間にギャップがありたいと思います.TV1は切り詰められて... TV1の最後に追加されました。別のテキストビューの場所に基づいてテキストビューにelipseを追加する方法はありますか?

私はなどをTV1に追加することができますが、私の経験からは、親の終わりに達したら、それ以外のTextViewsではなく機能します。

実際の文字数を設定することは、手作業で切り捨て/追加するオプションですが、別のオプションですが、別のサイズの表示幅などを監視する必要があります。 TV2も表示されると終了します。

プログラムでこれを行う方法はありますか?TextViewsは互いに実行できません。

ここに私が現在持っているのは... "RL"は私のRelativeLayoutです。

はTV1は...

 TextView tv1 = new TextView(this); 
     RelativeLayout.LayoutParams tvp1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     tvp1.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
     tv1.setId(R.id.tv1); 
     tv1.setPadding(5, 5, 5, 5); 
     tv1.setTextSize(20); 
     tv1.setText(myTV1Data); 
     rl.addView(tv1, tvp1); 

TV2は...

 TextView tv2 = new TextView(this); 
     RelativeLayout.LayoutParams tvp2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     tvp2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
     tv2.setId(R.id.tv2); 
     tv2.setPadding(5, 5, 5, 5); 
     tv2.setText(myTV2Data); 
     tv2.setTextSize(20); 
     rl.addView(tv2, tvp2); 

任意の提案を持っていましたか?

答えて

0

2つのTextView間にルールを追加します。
ここでは、コードです:

TextView tv2 = new TextView(this); 
    RelativeLayout.LayoutParams tvp2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    tvp2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
    tv2.setId(R.id.tv2); 
    tv2.setPadding(5, 5, 5, 5); 
    tv2.setText(myTV2Data); 
    tv2.setTextSize(20); 
    rl.addView(tv2, tvp2); 

    TextView tv1 = new TextView(this); 
    RelativeLayout.LayoutParams tvp1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    tvp1.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
    tvp1.addRule(RelativeLayout.LEFT_OF, tv2.getId()); 
    tv1.setId(R.id.tv1); 
    tv1.setPadding(5, 5, 5, 5); 
    tv1.setTextSize(20); 
    tv1.setText(myTV1Data); 
    rl.addView(tv1, tvp1); 
+0

...働いていたことを考えたことはありません! 'tv1.setSingleLine()'と 'tv1.setEllipsize(TextUtils.TruncateAt.END)'に追加するのに必要な参照用に他の人たちのためだけに。 – Peter

関連する問題