Chciałbym wiedzieć, co to clipToPadding służy ten atrybutViewGroup w systemie Android?
Przeszukałem dokumenty i niektóre strony internetowe, ale żadna, na którą się natknąłem, nie wyjaśnia, co to robi i co to znaczy, cóż, żadna z nich nie byłaby w stanie zrozumieć, więc pomyślałem, że dobrym pomysłem byłoby zadać to tutaj.
Możesz użyć clipToPadding dla widoków, które przewijają się. Załóżmy, że masz na przykład widok listy i masz dopełnienie ustawione na górze i na dole. Zwykle wypełnienie jest widoczne bez względu na to, które elementy są widoczne na ekranie. Poniższy diagram przedstawia listę z 10 elementami, ale tylko 4 są widoczne na ekranie, z domyślnymi ustawieniami clipToPadding:
(wyściółka)
poz.4
poz.5
poz.6
poz.7
(wyściółka)
Teraz, gdybyś ustawił clipToPadding="false"zamiast zwykłego stosowania do całego widoku, zastosuje on wypełnienie tylko do elementów końcowych, oto co zobaczysz w tym samym scenariuszu:
poz.4
poz.5
poz.6
poz.7
Teraz, gdybyś przewinął do góry lub do dołu listy, zobaczysz to:
(wyściółka)
przedmiot 1
poz.2
poz.3
poz.4
LUB
poz.7
poz.8
poz.9
poz.10
(wyściółka)
Praktycznym zastosowaniem jest to, że jeśli masz na przykład pływający przycisk akcji, powinieneś użyć clipToPadding w połączeniu z wyściółką dolną, aby zapewnić, że całość dolnego elementu będzie widoczna bez zasłaniania przez FAB.
Jednak w jakiś sposób odpowiedzi tekstowe są łatwiejsze do zrozumienia;) Dzięki za vis!
TWiStErRob
2
zdjęcie mówi znacznie więcej niż słowa, ale słowa były znacznie bardziej kompletne ... tutaj nie pokazano końca prawej listy, co się z nim stało, jeśli ma dolną wyściółkę ...
Użycie clipToPadding="false"powoduje przewijanie widoku przewijania nad górną ikoną Map Google. Wynika to z tego, że oba są wewnątrz tego samego FrameLayout.
A może chcesz, aby Twój RecyclerView przewijał się pod przezroczystym paskiem nawigacyjnym - używając android: fitSystemWindows = ”true” w połączeniu z android: clipToPadding = ”false”, przewijana zawartość będzie znajdować się za kontrolkami, ale po przewinięciu do dołu, ostatni element nadal będzie wyściełany tak, aby znajdował się nad paskiem nawigacji (a nie ukryty pod spodem!).
Określa, czy ViewGroupbędzie przycinać swoje elementy podrzędne i zmieniać rozmiar (ale nie przycinać) EdgeEffectdo jego wypełnienia, jeśli dopełnienie nie jest równe zero. Ta właściwość jest ustawiona natrue domyślnie.
Może być wartością logiczną, np. „Prawda” lub „fałsz”.
Wiem, że najwyżej oceniana odpowiedź wyjaśnia to dość jasno w tekście, ale jak zostało powiedziane,
„ Obraz jest wart tysiąca słów ”
Oto GIF o wartości 1500 przedstawiający to samo:
(Lewy:
clipToPadding = "true"
Prawy:clipToPadding = "false"
)źródło
Przyjemne użycie
clipToPadding
jest opisane w https://www.youtube.com/watch?v=O47H4PxMf9U (część kursu Material Design Udacity )Użycie
clipToPadding="false"
powoduje przewijanie widoku przewijania nad górną ikoną Map Google. Wynika to z tego, że oba są wewnątrz tego samegoFrameLayout
.źródło
Polecam zapoznać się z tym artykułem https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.5x2hz7q0g
źródło
Określa, czy
ViewGroup
będzie przycinać swoje elementy podrzędne i zmieniać rozmiar (ale nie przycinać)EdgeEffect
do jego wypełnienia, jeśli dopełnienie nie jest równe zero. Ta właściwość jest ustawiona natrue
domyślnie.Może być wartością logiczną, np. „Prawda” lub „fałsz”.
Powiązane metody:
setClipToPadding(boolean)
źródło