12

Jakie są zalety i wady CardView, inne niż cień lub wysokość, jakie są korzyści z wydajności i wyglądu? To, co jest zrobione przy użyciu CardView, może być również wykonane przy użyciu kombinacji innych układów.Zalety i wady CardView

+0

Nie ma różnicy w 'CardView' i' ListView' oprócz ** cienie ** i ** zaokrąglone rogi **. Możesz zrobić wszystko w widoku listy, które można zrobić w widoku karty. – Apurva

Odpowiedz

18

Zaleta Cardview jest zdecydowanie domyślną implementacją cienia i zaokrąglonych rogów, w prostych słowach Cardview to tylko FrameLayout z cieniem i zaokrąglonymi narożnikami. Możesz zrobić prawie to samo z urządzeniem Cardview, które możesz wykonać z Framelayout (jako Cardview rozszerza FrameLayout). Cardview dla interfejsu API> 21 używa apozycji elewacji do ustawienia cieni, natomiast w przypadku interfejsu API poniżej 21 dodaje obicie z szarym tłem w celu utworzenia fałszywych cieni (podobne do niestandardowej implementacji, o której mówiono).

Cardview jest przeznaczony do przechowywania pojedynczy widok dziecka w sobie i byłoby bardzo trudne do zarządzania wieloma widokami dziecka bez nakładania się na siebie, ponieważ nie ma wsparcia od nieruchomości, takich jak layout_below, layout_torightof etc .. do przezwyciężenia tego, podejście zastosowane przez programistów byłoby dodanie kolejnego Relativelayout w ramach Cardview w celu zarządzania widokami podrzędnymi, teraz doprowadziłoby to do większego zużycia zasobów z powodu układów zagnieżdżonych.

Aby obsłużyć złożone układy, zaleca się używanie niestandardowych widoków i używanie pojedynczego widoku podrzędnego przy użyciu Cardview.

Aby po prostu umieścić na górze zaokrąglone krawędzie i cienie: Jeśli weźmiesz pod uwagę Framelayout jako ciasto, to elewacja jest jak lukrowanie, a zaokrąglone krawędzie są jak wiśnia. Jego estetyka z lukrem i polewą, ale musisz rzucić dodatkowe pieniądze na wisienkę i wiśnię.

+0

To, co masz na myśli, to "CardView" jest korzystny tylko wtedy, gdy jest używany dla Api> 21. Dla Api <21 działa to tak samo jak 'FrameLayout'. –

+0

@MohammedAli Nie, dla API <21, wyświetla cienie i rogi z niestandardową implementacją. Korzyścią jest to, że projekt jest spójny we wszystkich wersjach interfejsu API. – sorianiv

+0

@Psypher, proszę też odpowiedzieć na to: http://stackoverflow.com/questions/36393540/no- shadow-elevation-underneath-second-card-if-there-are- two-card-in-the-layout –

Powiązane problemy