2012-03-08 2 views
5

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

Что у меня есть:

What i have

Что я пытаюсь сделать (обратите внимание на поля по обе стороны от разделителей):

what i need to have

Что бы быть лучшим способ сделать это? Заранее спасибо!

+0

http://stackoverflow.com/questions/3979218/android-listview-divider см. Этот пользовательский разделитель и приложите некоторые усилия ... –

ответ

6

В конце концов я смог решить свою проблему, используя принятый ответ this сообщение (без градиентной части)

0

Я предлагаю создать свой собственный ListAdapter и установить его в ваш ListView. Затем в своем методе getView вы можете стилизовать отдельные элементы списка любым способом.

10

использование <include layout="@layout/divider" /> и изготовленный под заказ макет для линии. как это:

main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
<ListView android:id="@+id/listview" 
android:layout_width="wrap_content" 
android:divider="@layout/divider" 
android:dividerHeight="3sp" 
android:layout_height="wrap_content" /> 
</LinearLayout> 

divider.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <gradient 
     android:startColor="#00000000" 
     android:centerColor="#FFFFFF" 
     android:endColor="#00000000" 
     /> 
    <corners 
     android:radius="4dp" 
     /> 
</shape> 

AndroidlistviewdividerActivity.class

public class AndroidlistviewdividerActivity extends Activity { 
    /** Called when the activity is first created. */ 
    private ListView lv; 
    private String listview_array[] = { "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", 
            "SEVEN", "EIGHT", "NINE", "TEN" }; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     lv = (ListView) findViewById(R.id.listview); 
     lv.setAdapter(new ArrayAdapter<String>(this, 
     android.R.layout.simple_list_item_1, listview_array)); 
     lv.setTextFilterEnabled(true); 
     lv.setOnItemClickListener(new OnItemClickListener() 
     { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      // TODO Auto-generated method stub 
      AlertDialog.Builder adb = new AlertDialog.Builder(
         AndroidlistviewdividerActivity.this); 
       adb.setTitle("ListView OnClick"); 
       adb.setMessage("Selected Item is = " 
       + lv.getItemAtPosition(arg2)); 
       adb.setPositiveButton("Ok", null); 
       adb.show();  
     } 
     }); 
    } 
} 
+0

Спасибо, это в значительной степени то, что я ищу. Но если я установил делитель ListView в @ layout/divider, приложение сработает. Какие-либо предложения? я получаю следующее сообщение об ошибке: вызвано следующими причинами: org.xmlpull.v1.XmlPullParserException: Binary XML файл строки # 2: тег недопустимый Drawable View – Meatje

+0

@Meatje: есть вы получите решение или нет? –

+0

@Meatje: хорошо, я обновляю свое решение, которое отлично работает на моей стороне. –

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