2013-12-10 4 views
0

У меня возникли проблемы с установкой бара оценки внутри моей таблицы. В принципе, я хочу иметь 5-ти звездную рейтинговую панель, охватывающую точно ее ширину, независимо от выравнивания других строк. Но либо я становлюсь более или менее звездами на дисплее.Несогласованный рейтингBar внутри TableLayout

Ниже я объясняю визуально, что происходит.

Trial # 1: Если я не использую любой layout_span и LinearLayout в RatingBar ряду, RatingBar получить соответствие с 2-й колонке, которая является причиной 4-й столбец укоротить намного

enter image description here

Trial # 2: Если я использую layout_span = 2 или 3 для бара оценки, он снова выравнивается с третьим или четвертым столбцом соответственно. Теперь всякий раз, когда это произойдет, количество звезд внутри ratingBar увеличилась

enter image description here

Trial # 3: Если я ставлю LinearLayout с layout_span = 3 и положить ratingBar внутри него (текущий код), он не показывает полный ширину, хотя моя layout_width - wrap_cotent.

enter image description here

Похоже, RatingBar не имеет ширину, чтобы заставить расположение, чтобы растянуть за пределы охватывают другие строки.

Может ли кто-нибудь посоветовать, как это решить?

IDEAL СЦЕНАРИЙ: Photoshopped, поэтому некоторые искажения цвета случилось :) enter image description here

КОД:

<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> 
+0

Как вы хотите, чтобы установить его? – GrIsHu

+0

Я хочу установить рейтинговую панель для отображения 5 звезд всегда, не более или менее ... Я имею в виду, что рейтинг abr должен быть обернут надлежащим образом, не затрагивая или не затрагивая другие строки ..... то же самое, что и Trial 3 с только 5 звезды и не заполнены полуфабрикаты ... – abdfahim

+0

В одном из основных вопросов добавляется одно идеальное изображение сценария – abdfahim

ответ

0

Его лучше использовать небольшие рейтинг баров

style="?android:attr/ratingBarStyleSmall" 

Также см. следующие ссылки

How to make RatingBar to show five stars

RatingBar displays incorrectly in Android when on same TableRow as TextView

+0

, это не сделает выбор рейтинга (означает, что вы не можете изменить рейтинг, нажав) – abdfahim

+0

set android: isIndicator = "false" – keshav

Смежные вопросы