表格行中的layout_width

时间:2015-04-09 18:03:16

标签: android xml

我有一个包含多行的TableLayout。行可以有2个或3个元素。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TableRow
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:weightSum="2">

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:text="@string/spielfortsetzung" />

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:text="@string/loesung" />

</TableRow>

<TableRow
    android:layout_height="wrap_content"
    android:layout_width="match_parent">

    <TextView
        android:id="@+id/tv3"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1" />

    <ListView
        android:id="@+id/list1"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:scrollbars="none" />

    <ImageView
        android:id="@+id/img1"
        android:layout_width="25dp"
        android:layout_height="25dp" />
</TableRow>
</TableLayout>

在Android Studio中,当我运行应用程序时,布局看起来是正确的,但不在我的设备上。所有布局都只占用1-2个字符的最小空间。它也不使用整个宽度,但在左侧留下空间。

3 个答案:

答案 0 :(得分:0)

试试这个,

<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent">

<TextView
    android:layout_height="wrap_content"
    android:layout_width="0dp"
    android:layout_weight="0.5"
    android:text="@string/spielfortsetzung" />

<TextView
    android:layout_height="wrap_content"
    android:layout_width="0dp"
    android:layout_weight="0.5"
    android:text="@string/loesung" />

//与其他行相同,将权重定义为部分。

答案 1 :(得分:0)

查看XML,第一个TableRow可能正确显示,第二个就忘记了TableRow的weightSum,并且所有两行都要求权重为1.将weightSum = 2添加到第二行应该可以解决您的问题。

答案 2 :(得分:0)

感谢大家。我同意,当重量=“0.5”时,它会做得更好。

然而,我的问题有所不同。我在Fragment中加载了这个布局。这只是动态UI的一部分,因此不是全屏幕都充满了这种布局。我使用null作为父容器,但是我没有使用我得到的ViewGroup容器作为参数并为attachToParent提交false,否则我的应用程序会崩溃。