TableLayout权重错误

时间:2019-02-10 00:43:19

标签: android android-studio kotlin

我在线性布局中使用表格布局,第一行结果很好,但是尽管同时设置了这两行,但它们的权重完全错误。我不确定这是否是我正在运行的Android Studio版本的问题,或者可能不适用于kotlin ...有什么办法可以解决?我已经更新了所有内容。

我知道表格布局过时,但是我认真不想使用约束布局,我绝对讨厌它。我所做的工作太多了。

activity_main.xml

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" android:background="@android:color/background_light"
        android:orientation="vertical">
    <TableLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" android:layout_weight="8" android:orientation="horizontal">

        <TableRow android:layout_width="match_parent" android:layout_height="match_parent">
            <TextView
                    android:text="@string/loan_amount"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:id="@+id/textView15" android:textSize="18sp"
                    android:textStyle="bold" android:layout_weight="3"/>
            <EditText
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:inputType="numberDecimal"
                    android:ems="10"
                    android:id="@+id/loanAmount" android:layout_weight="7"/>
        </TableRow>
        <TableRow
                android:layout_width="match_parent"
                android:layout_height="match_parent">
            <TextView
                    android:text="TextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:id="@+id/textView38" android:layout_weight="1"/>
            <TextView
                    android:text="TextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:id="@+id/textView39" android:layout_weight="1"/>
            <TextView
                    android:text="TextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:id="@+id/textView40" android:layout_weight="1"/>
        </TableRow>
    </TableLayout>
</androidx.appcompat.widget.LinearLayoutCompat>

1 个答案:

答案 0 :(得分:1)

只需在layout_width项中将TableRow设置为 0dp 。如果要使内容居中,请将android:gravity="center"添加到TextViews。

没有重力的代码如下:

<TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        <TextView
                android:text="TextView"
                android:layout_width="0dp"
                android:layout_height="wrap_content" android:id="@+id/textView38" android:layout_weight="1"/>
        <TextView
                android:text="TextView"
                android:layout_width="0dp"
                android:layout_height="wrap_content" android:id="@+id/textView39" android:layout_weight="1"/>
        <TextView
                android:text="TextView"
                android:layout_width="0dp"
                android:layout_height="wrap_content" android:id="@+id/textView40" android:layout_weight="1"/>
    </TableRow>