0

我已经尝试了所有可以尝试的方法,但我开始怀疑这是不可能的。

我正在寻找的是基于宽度的(水平)LinearLayout 中 N 个子项的动态分布。有点像 HTML 表格,通过动态计算列宽。基本上我想把我的 ListView 变成一个动态计算宽度的表格,如下所示:

<table class="ListView">
  <tr class="LinearLayout"><td class="TextView">John:</td><td class="TextView">123-456-789</td></tr>
  <tr class="LinearLayout"><td class="TextView">Mike:</td><td class="TextView">321-654-987</td></tr>
  <tr class="LinearLayout"><td class="TextView">Sally:</td><td class="TextView">789-456-123</td></tr>
</table>

我如何在 Android 中做类似的事情?请记住,我不只是想把它分成两个同样长的部分。我需要内容来确定列宽填充整个 LinearLayout。像这样(假设只有两个子元素):

[ [--TextView--] [--------TextView--------] ]
4

3 回答 3

1

无法使用LinearLayout. 您必须将 aTableLayoutTableRow' having widthwrap_content` 中的所有元素一起使用。如果要显示的行数是动态的,那么您必须在 ViewGroup 中动态创建和插入行,否则对于静态数据来说非常简单。

于 2012-08-25T02:29:45.117 回答
0

您可以android:layout_weight="1"为所有的TextViewin进行设置TableRow,但使用过多的权重对性能不利。

于 2012-08-25T01:23:55.740 回答
0

我猜你正在寻找这样的东西?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="100" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="This will take up much more space"
            android:layout_weight="20" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="test"
            android:layout_weight="80" />
    </LinearLayout>

</LinearLayout>

它会是什么样子。

注意:“这将占用更多空间”的背景是灰色的,因为我在将鼠标悬停在该 TextView 上时截取了屏幕截图,以使其全长可见。

于 2012-08-25T01:50:22.267 回答