2017-08-12 13 views
0

2つのTextView要素で塗りつぶすLinearyLayoutを水平にします。しかし、私は彼らがラインの最大数を最小限に抑えることによってスペースを最大にすることでした。レイアウトがそれを埋めることができる場合にのみ、layout_weightの空き領域を取る

<LinearLayout 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:baselineAligned="false" 
    > 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     > 
     <TextView 
      android:text="AAAAAAAAAA AAAA AAA A" 
      /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     > 
     <TextView 
      android:text="BBBB BBBBBBBB BBBB" 
      /> 
    </LinearLayout> 
</LinearLayout> 

これらの文字列は、サイズが大きく異なります。

[AAAAAAAisLong BBBB]


[AA BBBBBBBBBBBBB]


- それぞれがスクリーン

[AAAAAAA BBBBBBB]

の側面に固定される必要があります

(マルチライン - 同じ行数)

[AAAAAAAA BBBBBBBB]

[AAAAA BBBB]私は最大の数を最小限に抑えたXMLレイアウトを作成するにはどうすればよい


[AAAAA BBBBBBBBBBB]

[AAA BBBBBBBBB]

中間点を変更することによって両方のビューの線を削除しますか?それらの間にスペースがある場合はすべて維持します。ありがとう

答えて

0

私はあなたが求めていることを行う簡単な方法を知らない。私が思いつくことができる唯一のアイデアは、比較的単純で、文字列の長さに基づいて各ビューに動的に各ビューを割り当てることです。あなたはおそらくちょうどそれぞれの重量値のために.length()を使用することができます。明らかに、ある文字列がすべて「W」で、もう1つがすべて「私」であれば、それは完璧な一致ではありませんが、近いはずです。

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) textView1.getLayoutParams(); 
params.weight = text1.length(); 
textView1.setLayoutParams(params); 

params = (LinearLayout.LayoutParams) textView2.getLayoutParams(); 
params.weight = text2.length(); 
textView2.setLayoutParams(params); 
関連する問題