Nie byłbyś wtedy w stanie osiągnąć tego, co chcesz.
Krok pierwszy: Ustaw dzielnik tak przejrzyste, i sprawiają, że wysokość odrobinę większy:
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="@android:color/transparent"
android:dividerHeight="8dp"/>
Krok drugi: W celu osiągnięcia efektu „mała linia”, można dodać niestandardową rozciągliwej jako widoku listy element tła, powiedzmy element w widoku listy jest zdefiniowana jako „list_item.xml”:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
<-- Add a Custom background to the parent container of the listview items -->
android:background="@drawable/list_item_selector"
android:orientation="vertical" >
<-- Rest of the item layout -->
</LinearLayout>
oczywiście, że przedmiot może być cokolwiek chcesz go mieć, moja jest:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/bg_gray" />
<solid android:color="@android:color/white" />
</shape>
</item>
<item android:bottom="1dp">
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="#FFDDDDDD" />
<solid android:color="#00000000" />
</shape>
</item>
</layer-list>
Ale wtedy można wyłączyć efekt "Holo Selector", gdzie za każdym razem, gdy klikniesz lub podświetlisz element w widoku listy, pojawi się kolor Holo Blue, dlatego jeśli zauważysz na tle pozycji listy, nie zrobiliśmy tego Do użycia losowania listy warstw użyliśmy selektora o nazwie "list_item_selector".
Oto selektor, który korzysta z rozciągliwej liście warstw, gdy nie jest wciśnięty, a korzysta z Holo-niebieski kolor po naciśnięciu:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@drawable/list_item_bg2"
/>
<item android:state_pressed="true"
android:drawable="@color/holo_blue"
/>
</selector>
EDIT dla komentarza
absolutnie możliwe, można zdefiniować ustawiona wysokość dla elementów widoku listy, jednak zaleca się ustawienie minimalnej wysokości, a nie predefiniowanej wysokości, która nigdy się nie zmienia.
powiedzieć, że to mój układ element listy:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/grid_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/grid_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:layout_toRightOf="@+id/grid_image"
android:minHeight="48dp"
android:padding="8dp"
android:textIsSelectable="false" />
</RelativeLayout>
Wszystkie potrzebne byłoby
Krok pierwszy: Zdefiniuj wysokość min lub max wysokość, jak wolisz, w pliku dimens.xml zawarte w folderze values /. Czemu? Ponieważ wysokość powinna zdecydowanie zmienić się w zależności od układu i można zdefiniować różne dimens.xml dla każdego gęstości urządzenia.
w dimens.xml, powiedzieć:
<resources>
<!-- List Item Max and Min Height -->
<dimen name="list_item_min_height">48dp</dimen>
<dimen name="list_item_max_height">96dp</dimen>
<dimen name="list_item_set_height">64dp</dimen>
</resources>
a następnie użyć tych dwóch wartości dla rodzica LinearLayout
o układ, który pozycji na liście.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/list_item_min_height" >
I to wszystko na ten temat, teraz, aby wyśrodkować tekst, to jeszcze prostsze:
Jeśli używasz TextView i jest owinięta w RelativeLayout, przeznaczenie: android:layout_centerVertical="true"
Jeśli używasz LinearLayout, przeznaczenie: android:layout_gravity="center_vertical"
i połączenie z: UWAGA Działa to tylko wtedy, gdy nie ustawiono wysokości parametru wrap_content, w przeciwnym razie nie ma to znaczenia.
android:gravity="center_vertical"
Nadzieję, że pomaga.
Czy dopełnienie w pozycji listview xml –
Spowoduje to dodanie tylko dopełnienie do góry i dołu całego ListView. Chcę, aby wystąpił w każdym elemencie listview. – worm
Czy masz xml dla swojego przedmiotu listview? –