Obecnie piszę aplikację na Androida, która używa ListView z nagłówkami. Działa dobrze, ale nie tak jak chcę. Każda pozycja w ListView ma separator 1-2px na górze i na dole. Podobnie jak nagłówek - i na tym polega problem. Nie wygląda bardzo ładny ...Nagłówki ListView bez separatorów pozycji na liście
Ciekawostką jest to, że aplikacje systemowe (takie jak ustawienia, na przykład) nie ma takiego problemu.
Oto mój przykład adapter:
setListAdapter(new BaseAdapter() {
@Override
public int getCount() {
return 10;
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v = ((LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(i % 3 == 0 ? R.layout.list_header : android.R.layout.simple_list_item_1, viewGroup, false);
((TextView)v.findViewById(android.R.id.text1)).setText("test");
return v;
}
});
A lista plików układ nagłówka:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World"
style="?android:attr/listSeparatorTextViewStyle">
</TextView>
Więc pytanie brzmi: jak się pozbyć separatorów poz między nagłówkami i zwykłe przedmioty, takie jak na przykład aplikacja Ustawienia?
EDYCJA: Po przeczytaniu odpowiedzi, chcę wyjaśnić jedną rzecz. Robię , a nie chcę całkowicie usunąć separatory. Chcę je usunąć tylko między elementami nagłówka i zwykłymi przedmiotami. Nie wystarczają mi również półśrodki takie jak "całkowite usunięcie separatorów i dodanie ich do niektórych elementów".
Można zdecydowanie się, że wygląd za pomocą API preferencji i tworzenia 'PreferenceCategory' dla każdego nagłówka - Zakładam, że to, co robi aplikacja Ustawienia. – Ellis
@ Eliis tak, masz rację - chociaż istnieją inne aplikacje systemowe, które zachowują się w ten sposób. Na przykład aplikacja Osoby - nie sądzę, aby korzystała z interfejsu API Preferencji w celu uzyskania takiego wyglądu. :) – m4tx
Dobra uwaga, i nie wiem, jak mogą to zrobić. Być może wyciągnęli kod z interfejsów API Preferencji. – Ellis