Jak utworzyć ListView jak to w Android 1.6 lub 2 (z powodu renderscript, która działa tylko w 3 lub później, ale muszę listy pracować na niemal wszystkie androidy):Android: Vertical ListView z nakładające się rzędy
Odpowiedz
Użyłem Camera.setTranslate(x, 0, z)
w drawChild, gdzie zmieniono pozycję x dla wirtualizacji rotacji i z dla nakładania się. Potem pojawił się problem z nakładaniem, ponieważ ostatni element był na górze, a pierwszy na dolnej. Tak więc w metodzie onCreate()
nazwano this.setChildrenDrawingOrderEnabled(true)
i zmieniono protected int getChildDrawingOrder (int childCount, int i) {}
, gdzie mogłem zmienić kolejność dla średnich i późniejszych rzędów. Pomysł ten został podany przez Renarda, który zasugerował mi w innym moim poście o prawie tym samym here.
My getChildDrawingOrder (int, int) realizacja aby nakładających muszę:
@Override
protected int getChildDrawingOrder (int childCount, int i) {
int centerChild = 0;
//find center row
if ((childCount % 2) == 0) { //even childCount number
centerChild = childCount/2; // if childCount 8 (actualy 0 - 7), then 4 and 4-1 = 3 is in centre.
int otherCenterChild = centerChild - 1;
//Which more in center?
View child = this.getChildAt(centerChild);
final int top = child.getTop();
final int bottom = child.getBottom();
//if this row goes through center then this
final int absParentCenterY = getTop() + getHeight()/2;
//Log.i("even", i + " from " + (childCount - 1) + ", while centerChild = " + centerChild);
if ((top < absParentCenterY) && (bottom > absParentCenterY)) {
//this child is in center line, so it is last
//centerChild is in center, no need to change
} else {
centerChild = otherCenterChild;
}
}
else {//not even - done
centerChild = childCount/2;
//Log.i("not even", i + " from " + (childCount - 1) + ", while centerChild = " + centerChild);
}
int rez = i;
//find drawIndex by centerChild
if (i > centerChild) {
//below center
rez = (childCount - 1) - i + centerChild;
} else if (i == centerChild) {
//center row
//draw it last
rez = childCount - 1;
} else {
//above center - draw as always
// i < centerChild
rez = i;
}
//Log.i("return", "" + rez);
return rez;
}
Mam nadzieję, że ten post pomoże komuś w przyszłości
Screenshot jest faktycznie prawie taka sama, jak już wspomniałem w moim pytaniu . Kiedyś alfa, więc nakładka przedmiotów jest nieco przezroczyste:
@pengwang what demo? masz na myśli zrzut ekranu wyniku? –
tak, masz rację, możesz udostępnić zrzut ekranu z kodem wyniku – pengwang
@PooLaS proszę podać link preferencji lub opublikuj swoje klasy, aby zrozumieć tę rzecz do wykonania. –
- 1. Haskell: Nakładające się przypadki
- 2. Android ListView lazy loading
- 3. Nakładające się kolumny w Highchart
- 4. Nakładające się widoki w UIStackView
- 5. Obrazy magiczne nakładające się obrazy
- 6. Nakładające się przypadki, w Haskell
- 7. Nakładające się elementy w CSS
- 8. Zatrzymaj pylab nakładające się działki?
- 9. Nawigacja na liście ActionBar Nakładające się fragmenty
- 10. Fragmenty Androida nakładające się po obróceniu ekranu
- 11. Edittext in Listview android
- 12. Custom ListView Adapter Android
- 13. Android: stopka w ListView
- 14. Android: efekt migotania ListView. Jakieś wskazówki, jak się tego pozbyć?
- 15. Android ListView z awariami stronicowania
- 16. Android Actionbar Wyszukaj z listview
- 17. ListView z niestandardowym układem wierszy - Android
- 18. Nakładające się etykiety osi w R
- 19. Android: Zrób widok przewijania listview wraz z listview.
- 20. Narysuj obszary nakładające się na jednej ścieżce
- 21. wkhtmltopdf powtarzające nagłówki i nakładające się treści
- 22. Jak narysować nakładające się klastry w Graphviz?
- 23. Nakładające się elementy flexbox CSS w Safari
- 24. Android ListView motywy
- 25. android - ListView Ilość filtr
- 26. Android ListView onItemClick
- 27. Android ListView Subitems
- 28. Android ListView Live Aktualizacja
- 29. Android SearchView Filter ListView
- 30. Programowo Fling ListView Android
Wszelkie pomysły, jak podejść do tego? –