2017-08-12 88 views
0

我有一个水平的LinearyLayout,我想填充两个TextView元素。但我是他们通过最大限度地减少线路的最大数量来最大化空间。只有布局可以填充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> 

这些字符串在大小上有很大的不同。他们每个人都需要被固定在屏幕

[AAAAAAA BBBBBBB]

两侧 -

[AAAAAAAisLong BBBB]


[AA BBBBBBBBBBBBB]


(多行 - 相同行数)

[AAAAAAAA BBBBBBBB]

[AAAAA BBBB]


[AAAAA BBBBBBBBBBB]

[AAA BBBBBBBBB]

我怎样写一个xml布局的最大数量减少通过改变中间点为两个视图的线?同时保持它们之间有空间的情况。谢谢

回答

0

我不知道一个简单的方法来做你的问题。我能想出的唯一想法既简单又相对接近你想要的,就是根据字符串长度为每个视图动态分配一个权重。你甚至可以使用.length()作为每个人的体重值。显然,如果一个字符串全部是“W”,而另一个全是“我”,那么它将不是完美匹配,但它应该接近。

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); 
相关问题