2010-03-03 3 views

ответ

716

Вы можете установить это значение в XML-файле макета, используя android:divider="#FF0000". Если вы меняете цвет/рисунок, вам необходимо установить/сбросить высоту разделителя.

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <ListView 
    android:id="@+id/android:list" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:divider="#FFCC00" 
    android:dividerHeight="4px"/> 

</LinearLayout> 
+11

Вы также должны быть в состоянии указать ' Ресурс Drawable' в 'android: divider'. Существующий разделитель - это градиент. – CommonsWare

+0

Где находится разделитель градиента? – ninjasense

+58

Если вы делаете это в XML, убедитесь, что вы также видите высоту, используя android: dividerHeight, иначе вы не получите строку –

159

Или вы можете написать код:

int[] colors = {0, 0xFFFF0000, 0}; // red for the example 
myList.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
myList.setDividerHeight(1); 

Надеется, что это помогает

+0

Идеально, мои предметы были на красноватом фоне градиента, и ваш эффект сделал их великолепными !! – Darkendorf

+1

, если вы расширяете ListActivity, замените mylist на getListView() – Aziz

83

Для одноразового использования цвета линии:

list.setDivider(new ColorDrawable(0x99F10529)); //0xAARRGGBB 
list.setDividerHeight(1); 

Это важно, что DividerHeight устанавливается после того, как divider, иначе вы ничего не получите.

+1

Спасибо, я вызвал setDividerHeight() перед setDivider(), и не было показано разделителя. –

+3

Очень полезный комментарий о порядке операций. Я просто потратил 2 часа, пытаясь заставить его работать. Отличный дизайн, Android. –

10

Вы также можете получить цветы от ваших ресурсов с помощью:

dateView.setDivider(new ColorDrawable(_context.getResources().getColor(R.color.textlight))); 
dateView.setDividerHeight(1); 
0

Использование android:divider="#FF0000" и android:dividerHeight="2px" для ListView.

<ListView 
android:id="@android:id/list" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:divider="#0099FF" 
android:dividerHeight="2px"/> 
9

Версия XML для @Asher Aslan классный эффект.

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 

    <gradient 
     android:angle="180" 
     android:startColor="#00000000" 
     android:centerColor="#FFFF0000" 
     android:endColor="#00000000"/> 

</shape> 

Имени для этой формы, как: list_driver.xml под вытяжкой папки

<ListView 
     android:id="@+id/category_list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:divider="@drawable/list_driver" 
     android:dividerHeight="5sp" /> 
4

Есть два способа сделать то же самое:

  1. Вы можете установить значение андроида : divider = "# FFCCFF" в макете xml файла. С этим вы также должны указать высоту делителя, как это android: dividerHeight = "5px".

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    
        <ListView 
        android:id="@+id/lvMyList" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:divider="#FFCCFF" 
        android:dividerHeight="5px"/> 
    
    </LinearLayout> 
    
  2. Вы также можете сделать это программно ...

    ListView listView = getListView(); 
    ColorDrawable myColor = new ColorDrawable(
        this.getResources().getColor(R.color.myColor) 
    ); 
    listView.setDivider(myColor); 
    listView.setDividerHeight(); 
    
2

Использование ниже кода в файле XML

<ListView 
    android:id="@+id/listView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:divider="#000000" 
    android:dividerHeight="1dp"> 
</ListView> 
+2

Лучше всего объяснить, почему ваше решение работает. Только ответы на код могут исправить проблему, но это не обязательно отвечает на вопрос афера. – SuperBiasedMan

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