TableLayout中的RatingBar不一致

时间:2013-12-10 05:03:50

标签: android ratingbar

我无法修复表格布局中的评级栏。基本上我想要的是有一个5 stared额定条跨越其宽度,而不管其他行对齐。但要么我在显示器中获得更多或更少的星星。

下面我将直观地解释发生了什么。

试用#1 :如果我在RatingBar行中没有使用任何layout_span和linearlayout,则RatingBar会与第2列对齐,导致第4列截断很多

enter image description here

试用#2 :如果我使用layout_span = 2或3作为评级栏,它又会分别与第3或第4列对齐。现在每当发生这种情况时,ratingBar里面的星数就会增加

enter image description here

试用#3 :如果我使用layout_span = 3放置一个linearlayout并将ratingBar放在其中(当前代码),即使我的layout_width是wrap_cotent,它也不会显示全宽。

enter image description here

似乎RatingBar没有宽度来强制布局超出其他行跨度。

有人可以建议如何解决这个问题吗?

IDEAL SCENARIO: Photoshop,所以发生了一些颜色失真:) enter image description here

CODE:

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:background="@color/bg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".AddEntry" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <TableRow
            android:padding="2.5dp"
            android:background="@color/col1"
            android:gravity="center_vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="test1" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:hint="test2" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:text="test3" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:hint="test4" />

        </TableRow>

        <TableRow
            android:padding="2.5dp"
            android:background="@color/col2"
            android:gravity="center_vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="test5" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_span="3"
                android:hint="test6" />

        </TableRow>

        <TableRow
            android:padding="2.5dp"
            android:background="@color/col1"
            android:gravity="center_vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="test7" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_span="2"
                android:layout_marginLeft="5dp"
                android:hint="test8" />

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:src="@drawable/get_google" />

        </TableRow>

        <TableRow
            android:paddingLeft="2.5dp"
            android:background="@color/col2"
            android:gravity="center_vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="test9" />
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_span="3" >
                <RatingBar
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:numStars="5"
                    android:stepSize="1"
                    android:rating="1" />

                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:layout_height="wrap_content"
                    android:text="" />
            </LinearLayout>
        </TableRow>
    </TableLayout>
</ScrollView>

1 个答案:

答案 0 :(得分:0)

最好使用小型评级栏

 style="?android:attr/ratingBarStyleSmall"

另见以下链接

How to make RatingBar to show five stars

RatingBar displays incorrectly in Android when on same TableRow as TextView