Here you are using the rating bar inside table row. According to reference docs the children of tablerow take match parent as their width. So instead you can nest a horizontal linearlayout inside this table row which in turn will embed rating bar as follows :
<TableRow
android:id="@+id/rate_row"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RatingBar
android:id="@+id/product_rating"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="true"
android:max="5"
android:numStars="5"
android:rating="4"
android:stepSize="1" />
</LinearLayout>
</TableRow>