0

我在我的应用程序中使用 4 列的 TableLayout。当我连续插入评分栏时layout_span=3,星星没有按预期工作。

例如,我给了numStars=5,但它显示的是 6 星的2/3。此外,如果我单击第 3 颗星,它会选择 3.25 颗星,如果选择第 4 颗星,则会突出显示 4.5 等等……缩放无法正常工作。

我尝试将 layout_height 更改为 wrap_content,但结果相同。仅当我删除 layout_span 时,它才能正常工作,但在这种情况下,我的其他行的列会失真。

任何人都可以帮我解决问题吗?如果这是正常行为,那么如何使用 layout_span 获得正确的评分栏?

<TableRow
            android:layout_width="wrap_content"
            android:layout_height="0dp"
        android:layout_weight="1" >

        <TextView
                android:id="@+id/rating"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/rating" />

        <RatingBar
                android:id="@+id/add_rating"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_span="3"
                android:numStars="5"
                android:stepSize="1"
                android:rating="4" />

    </TableRow>
// NORMAL ROW
<TableRow
            android:id="@+id/tr12"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
        android:layout_weight="1" >
            <TextView
                android:id="@+id/lab_datepurchased"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/datepurchased" />

            <EditText
                android:id="@+id/add_datepurchased"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:hint="@string/dateinput" />

            <TextView
                android:id="@+id/lab_shelfno"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/shelfno" />

            <EditText
                android:id="@+id/add_shelfno"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:hint="@string/definputtext2" />

        </TableRow>
4

1 回答 1

1
// try this
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/banner_holder"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center">

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

        <RatingBar
            android:id="@+id/add_rating"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:numStars="5"
            android:stepSize="1"
            android:rating="4" />
    </TableRow>

    <TableRow
        android:id="@+id/tr12"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center">
        <TextView
            android:id="@+id/lab_datepurchased"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="@string/datepurchased" />

        <EditText
            android:id="@+id/add_datepurchased"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="@string/dateinput" />

        <TextView
            android:id="@+id/lab_shelfno"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="@string/shelfno" />

        <EditText
            android:id="@+id/add_shelfno"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="@string/definputtext2" />

    </TableRow>
</TableLayout>
于 2013-11-11T04:48:28.277 回答