1 00:00:02,320 --> 00:00:08,260 Jeśli chodzi o stylizowanie listy, możemy oczywiście stylizować zarówno elementy listy, jak i samą 2 00:00:08,260 --> 00:00:08,810 listę. 3 00:00:08,840 --> 00:00:10,830 Więc zacznijmy od elementów, 4 00:00:10,840 --> 00:00:17,440 a tutaj wycinę ten znak tutaj, żeby tak rzec, aby kod jsx dla elementu i dodałem nową 5 00:00:17,440 --> 00:00:22,420 funkcję poza funkcją komponentu, ponieważ tak naprawdę nie potrzebujemy niczego od wewnątrz 6 00:00:22,420 --> 00:00:27,380 komponentu, a ja nazwiemy ten element listy renderowania, nazwa należy do Ciebie. 7 00:00:27,490 --> 00:00:33,850 Jest to funkcja, która na końcu powinna zwrócić tutaj trochę kodu jsx, 8 00:00:33,850 --> 00:00:41,320 więc powinna zwrócić ten kod jsx tutaj i działać poprawnie, oczywiście musimy uzyskać powiedzmy naszą 9 00:00:41,690 --> 00:00:44,320 wartość, którą chcemy wyprowadzić. 10 00:00:44,320 --> 00:00:50,950 Więc tutaj użyję wartości jako klucza i wartości wyjściowej tutaj między tagami tekstowymi, a teraz 11 00:00:50,950 --> 00:00:54,240 możemy użyć elementu renderowania listy tam, gdzie 12 00:00:54,250 --> 00:01:01,850 nazywamy mapę, i tutaj, po prostu chcę wykonać element renderowania listy dla każdego elementu, który mamy 'mapuje i 13 00:01:01,880 --> 00:01:05,410 zgaduję, że jako wartość w elemencie listy renderowania. 14 00:01:05,440 --> 00:01:08,620 Teraz, jeśli to zrobimy, powinniśmy zobaczyć ten sam 15 00:01:08,630 --> 00:01:13,720 wynik, co wcześniej, więc nie ma tu nic zbyt fantazyjnego, ale teraz mamy tam uboższy 16 00:01:13,730 --> 00:01:17,690 znacznik, szczuplejszy kod jsx i mamy tutaj kod jsx elementu listy. 17 00:01:17,870 --> 00:01:23,930 Teraz możemy to stylizować i oczywiście chcę tutaj stylizować mój widok, w tym celu dodam 18 00:01:23,930 --> 00:01:28,640 styl z arkusza stylów, który wymienię na liście, i tam naprawdę chcę 19 00:01:28,650 --> 00:01:33,600 teraz mieć dwa elementy tekstowe i jeden powinien być numerem rundy, a druga 20 00:01:33,600 --> 00:01:34,710 powinna być wartością, 21 00:01:34,710 --> 00:01:41,940 więc tutaj potrzebuję dodatkowego argumentu, potrzebuję wartości, ale także numeru rundy lub numOfRound, jak ją tutaj nazywam i 22 00:01:41,940 --> 00:01:42,980 chcę 23 00:01:43,080 --> 00:01:45,640 to wypisać dynamicznie tutaj, być może 24 00:01:45,720 --> 00:01:49,800 z tym symbolem skrótu przed nim tylko ze względów stylistycznych. 25 00:01:50,250 --> 00:01:54,030 Więc teraz mamy te dwa teksty na tej liście tu 26 00:01:54,030 --> 00:01:59,350 i tam, tak naprawdę nie chcę używać tekstu, ale tekst podstawowy, więc mam domyślną stylizację tekstu. 27 00:01:59,370 --> 00:02:06,030 W tym celu zaimportujmy tekst podstawowy z tekstu podstawowego komponentów i zastosujmy tutaj tekst podstawowy zamiast zwykłego 28 00:02:06,030 --> 00:02:10,860 tekstu w naszym elemencie listy. Dzięki temu używamy właściwej czcionki, 29 00:02:10,860 --> 00:02:17,730 a teraz dodajmy ten obiekt listy do naszego arkusza stylów, abyśmy mogli stylizować element listy, w rzeczywistości 30 00:02:17,730 --> 00:02:21,040 powinien to być zatem element listy, a nie lista. 31 00:02:21,040 --> 00:02:25,030 Dodajmy teraz element listy do arkusza 32 00:02:25,390 --> 00:02:29,490 stylów, tak jak teraz i oczywiście możemy stylizować 33 00:02:29,860 --> 00:02:38,800 to w dowolny sposób, ja stylizuję go tutaj stosunkowo łatwo, po prostu nadaj mu kolor obramowania, powiedzmy 34 00:02:38,800 --> 00:02:47,080 czarny, a może to tutaj lekko szarawy kolor. Wypełnienie we wszystkich kierunkach, powiedzmy 15, aby mieć pewne odstępy, margines na osi pionowej 35 00:02:47,500 --> 00:02:49,360 10, dzięki czemu mamy pewne 36 00:02:49,360 --> 00:02:55,480 odstępy między elementami listy i nie siedzą one obok siebie. Kolor tła może być biały 37 00:02:55,480 --> 00:02:57,280 i oczywiście 38 00:02:57,280 --> 00:03:01,210 możesz tutaj użyć różnych kolorów, jeśli chcesz. 39 00:03:01,290 --> 00:03:03,060 To dopiero początek, teraz, kiedy 40 00:03:03,060 --> 00:03:07,650 ustawiamy kolor obramowania, musimy również ustawić tutaj szerokość obramowania, ale w przeciwnym 41 00:03:07,650 --> 00:03:08,370 razie 42 00:03:08,370 --> 00:03:14,850 nie zobaczymy obramowania i ustawię to na jedno i bardzo ważne, chcę je mieć dwa komponenty tekstowe 43 00:03:14,850 --> 00:03:20,220 w moim widoku siedzą obok siebie, a nie nad sobą, co byłoby domyślne, ponieważ 44 00:03:20,430 --> 00:03:25,830 widok używa Flexbox i używa domyślnego kierunku wygięcia kolumny, aby element siedział obok siebie 45 00:03:25,830 --> 00:03:30,540 na osi poziomej, dodajemy wygnij tutaj rząd kierunku wygięcia tak jak to. 46 00:03:30,540 --> 00:03:35,990 A jeśli to uratujemy, a aplikacja przebuduje się, spróbujmy i zobaczmy, jak to wygląda, 47 00:03:36,030 --> 00:03:40,320 tak, to wygląda dobrze, ale wciąż jest miejsce na ulepszenia. 48 00:03:40,320 --> 00:03:46,320 Na przykład chcę ustawić szerokość tego elementu listy, aby upewnić się, że nie jest on tak szeroki, 49 00:03:46,350 --> 00:03:54,360 jak wymaga tego jego zawartość, ale tak szeroki, jak mu mówimy. Teraz, aby dodać szerokość, możesz dodać szerokość tutaj, aby wyświetlić pozycję elementu, 50 00:03:54,420 --> 00:03:54,940 ale 51 00:03:55,020 --> 00:04:01,200 jeśli to zrobimy i ustawimy to na powiedzmy 80%, zobaczysz, że nie zachowuje się to tak, jak chcesz, aby 52 00:04:01,200 --> 00:04:03,110 działało poprawnie, więc robi to nie 53 00:04:03,110 --> 00:04:04,570 wyglądają dobrze, teraz treść 54 00:04:04,680 --> 00:04:13,260 została w jakiś sposób przeniesiona, ale sam przedmiot z pewnością nie jest szerszy. Aby poprawnie stylizować listę, najlepszym sposobem jest po 55 00:04:13,260 --> 00:04:18,510 prostu zawinięcie jej w widok, a następnie stylizowanie tego widoku. 56 00:04:18,510 --> 00:04:20,000 Więc tutaj możemy 57 00:04:20,010 --> 00:04:22,290 dodać widok, nadać mu styl listy 58 00:04:22,290 --> 00:04:29,130 powiedzmy, więc tutaj odnoszę się do listy stylów i dodajmy teraz ten obiekt listy do naszego arkusza stylów, tak 59 00:04:29,130 --> 00:04:36,240 jak to i na tej liście, możemy teraz ustawić szerokość 80% i pozbyć się szerokości tutaj na elemencie listy. 60 00:04:36,240 --> 00:04:41,880 Jeśli zrobimy to w tym widoku zawijania, zobaczysz, że elementy listy mają poprawny wygląd i jest to 61 00:04:41,880 --> 00:04:43,620 coś, o czym należy pamiętać. 62 00:04:43,740 --> 00:04:50,430 Jeśli chcesz kontrolować wysokość lub szerokość listy, widoku przewijania, nie dodawaj stylu do elementów listy, 63 00:04:50,430 --> 00:04:51,650 nie koniecznie 64 00:04:51,690 --> 00:04:57,450 dodawaj go bezpośrednio do widoku przewijania, ponieważ działa to wewnętrznie, ale zamiast tego 65 00:04:57,450 --> 00:05:03,250 wystarczy owinąć widok wokół widoku przewijania, w którym ustawiono żądaną szerokość i wysokość. 66 00:05:03,290 --> 00:05:09,320 Zauważysz teraz, że na elemencie listy byłoby miło, gdybyśmy wyprowadzili tam okrągły numer, 67 00:05:09,360 --> 00:05:15,630 a następnie mielibyśmy odstępy między okrągłym numerem a naszym rzeczywistym zgadywaniem i aby to 68 00:05:15,630 --> 00:05:18,590 osiągnąć, na przykład musimy ustawić styl 69 00:05:18,720 --> 00:05:26,670 tutaj na pozycji na liście, możemy ustawić justifyContent, który kontroluje, jak treść tego widoku jest rozmieszczona wzdłuż głównej 70 00:05:26,670 --> 00:05:33,070 osi, która odzwierciedla kierunek jako oś pozioma, i tam, wykorzystam przestrzeń wokół, aby rozdzielić dostępne 71 00:05:33,210 --> 00:05:40,260 wolne miejsce wokół naszej elementy tekstowe tu i teraz, aby również wypisać liczbę rund, które oczekujemy 72 00:05:40,260 --> 00:05:48,360 jako argument tutaj w elemencie renderowania listy, możemy przejść do naszej funkcji mapy i tam faktycznie otrzymujemy drugi argument 73 00:05:48,360 --> 00:05:54,510 w tej funkcji, który mapa wywołuje automatycznie i to jest indeks elementu, który wyprowadzamy, 74 00:05:54,510 --> 00:05:55,680 więc możemy 75 00:05:55,680 --> 00:06:03,030 przesłać ten indeks tutaj, aby wyświetlić element listy lub indeks plus 1, ponieważ zacznie się od 0 76 00:06:03,030 --> 00:06:07,560 i prawdopodobnie chcemy wydrukować jeden dla pierwszej rundy zamiast 0. 77 00:06:07,560 --> 00:06:15,300 Teraz, gdy dodamy to, teraz to wygląda trochę lepiej i może faktycznie przełączamy ten wygląd tutaj z przestrzeni wokół 78 00:06:15,300 --> 00:06:20,980 na przestrzeń, myślę, że wygląda to ładniej, ale zanim to zapiszę i zaktualizuję, 79 00:06:20,980 --> 00:06:27,390 będziesz zauważ również, że masz jeden problem z tym, że okrągły numer nie jest w rzeczywistości 80 00:06:27,390 --> 00:06:27,970 poprawny. 81 00:06:28,020 --> 00:06:33,030 Pierwsza runda jest najniższą rundą, ponieważ dodajemy nowe rundy na początku listy, dlatego indeks nie 82 00:06:33,030 --> 00:06:39,390 jest właściwą miarą dla numeru trasy, ponieważ indeks zawsze wynosi 0 lub jeśli dodamy 1, to 1, dla 83 00:06:39,450 --> 00:06:42,620 pierwszej listy element, ale pierwsza pozycja na liście nie 84 00:06:42,650 --> 00:06:45,700 jest właściwie naszą pierwszą rundą, ponieważ ponieważ dodajemy 85 00:06:45,780 --> 00:06:51,330 nowe rundy jako pierwszą pozycję na liście, pierwsza pozycja na liście jest naszą ostatnią rundą i 86 00:06:51,330 --> 00:06:52,940 na pewno nie pierwszą. 87 00:06:52,980 --> 00:07:02,670 Aby to naprawić, możemy tutaj użyć elementów renderowania listy, zamiast korzystać z indeksu, możemy oczywiście skorzystać z naszej poprzedniej 88 00:07:02,880 --> 00:07:12,300 listy zgadnięć tutaj i uzyskać długość tej listy, a następnie odjąć od niej indeks, a to daje nam 89 00:07:12,370 --> 00:07:16,810 właściwie właściwy okrągły numer dla danego elementu listy. 90 00:07:17,500 --> 00:07:24,310 Więc teraz, jeśli to zrobimy i zrestartujemy to, teraz widzimy, że okrągła liczba pierwsza jest domysłem siódmym, i pozostaje numerem 91 00:07:24,310 --> 00:07:26,230 jeden, jeśli dodamy kolejne domysły 92 00:07:26,260 --> 00:07:29,520 i teraz wydaje się, że działa to tutaj poprawnie. 93 00:07:29,560 --> 00:07:36,180 Przekonasz się również, że gdy tylko przekroczymy nasze granice, możemy oczywiście przewinąć listę i wydaje 94 00:07:36,310 --> 00:07:39,430 się, że działa to tak, jak powinno. 95 00:07:39,430 --> 00:07:48,280 Spróbujmy też tutaj na Androida, zacznijmy nową grę i miejmy nadzieję, że nie wygramy zbyt wcześnie, 96 00:07:48,280 --> 00:07:51,000 tak, to wydaje się 97 00:07:51,010 --> 00:07:54,640 działać, ale tam, właściwie nie mogę przewijać. 98 00:07:54,640 --> 00:07:57,820 Tak więc na Androidzie to właściwie nie działa poprawnie, tej 99 00:07:57,820 --> 00:07:59,850 listy nie można tam przewijać. 100 00:07:59,860 --> 00:08:01,320 Co jest nie tak na Androidzie? 101 00:08:01,510 --> 00:08:04,930 Teraz, gdy przewija się dobrze w iOS, 102 00:08:04,930 --> 00:08:12,490 dla widoku przewijania zagnieżdżonego w widoku do przewijania również w Androidzie, upewnij się, że widok otaczający faktycznie 103 00:08:12,820 --> 00:08:15,080 używa Flex Flex, więc dodaj 104 00:08:15,100 --> 00:08:20,320 to do stylu listy, który jest stylem zastosowanym do widok owinięty wokół 105 00:08:20,320 --> 00:08:21,570 widoku przewijania. 106 00:08:21,820 --> 00:08:25,120 Po dodaniu tego, jeśli spróbujemy teraz ponownie na Androidzie, 107 00:08:28,940 --> 00:08:34,700 zauważysz, że teraz jest on przewijany, gdy tylko przekroczysz granice ekranu, a na iOS, powinien 108 00:08:34,700 --> 00:08:37,460 nadal działać tak jak poprzednio, a 109 00:08:37,580 --> 00:08:40,810 ponieważ na iOS, możemy nawet przewijaj bez przekraczania 110 00:08:40,820 --> 00:08:45,090 granic, to tylko domyślne zachowanie iOS, które możesz nieco zrównoważyć takie listy. 111 00:08:45,710 --> 00:08:51,800 Mamy teraz tę przewijaną listę z przewijanym widokiem i mapą, która działa zarówno na Androidzie, jak i 112 00:08:51,800 --> 00:08:52,310 iOS.