2013-12-19 7 views
0

Я создаю гистограмму, которая будет использоваться в списке. Бары построены с помощью LinearLayout и Weights. Простое представление гистограммы, содержащей только один бар, представленный в XML ниже:Android listview изменить размер макета subviews

<LinearLayout 
    android:id="@+id/chart" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <LinearLayout 
     android:id="@+id/bar" 
     android:layout_width="20dp" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp"> 
     <View 
      android:id="@+id/counter_weight" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" /> 
     <View 
      android:id="@+id/visible_part_of_bar" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" /> 
    </LinearLayout> 
</LinearLayout> 

Если вы хотите этот бар, чтобы представить сказать 60 процентов, вы установите вес visible_part_of_bar до 60 и веса counter_weight до 40.

Вид сам по себе отлично работает сам по себе, но внутри списка, высота подзаголовков не обновляется правильно. Очень странно добавить к этому, что вы можете обновить цвет фона панели в списке, но все остальное, кажется, игнорируется.

Любые мысли о том, что может пойти не так?

ответ

0

Похоже, вы пытаетесь использовать систему взвешивания LinearLayout, но это не похоже на то, что у вас есть правильные настройки.

  • Добавьте следующий к LinearLayout XML-тега: андроид: weightSum = "1.0"
  • Добавьте следующий первый взгляд (60% высота): андроид: layout_weight =
  • »6" .
  • Добавьте следующее второй зрения (на 60% по высоте): андроид: «. 4" layout_weight =

Если вы подаете эти изменения макета программно, вы, вероятно, хотите вызвать requestLayout() на корневой вид строки после внесение изменений.

+0

Сумма веса LinearLayout не должна содержать сумму до 1,0. Как уже упоминалось выше, представление прекрасно работает за пределами ListView. Я пробовал вызывать requestLayout в корневом режиме, к сожалению, он не имел никакого эффекта. Спасибо за попытку! – jonte

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