Materiały przygotowane w oparciu o książkę:
Andrzej Stasiewicz - Android Studio Podstawy tworzenia aplikacji. HELION
Oto jak wygląda aplikacja po zakończeniu tego codelaba (z wyjątkiem tego, że zostanie ona dostosowana do Twojej nazwy!):
W tym codelabu tworzysz aplikację na Androida z szablonem projektu Empty Activity dostarczonym przez Android Studio.
Aby stworzyć projekt w Android Studio:
Otworzy się okno Nowy Projekt z listą szablonów dostarczonych przez Android Studio.
W Android Studio szablon projektu to projekt na Androida, który zapewnia plan dla określonego typu aplikacji. Szablony tworzą strukturę projektu i pliki potrzebne dla Android Studio do zbudowania projektu. Szablon, który wybierzesz, zapewnia kod startowy, aby przyspieszyć.
"Hello
Android!"
..Pole Nazwa służy do wpisania nazwy projektu, dla tego typu codelab "Greeting Card".
Pozostaw pole Nazwa pakietu, tak jak jest. W ten sposób Twoje pliki będą zorganizowane w strukturze pliku. W takim przypadku nazwa pakietu będzie com.example.greetingcard
..
Pozostaw pole lokalizacji Save, jak jest. Zawiera lokalizację, w której zapisywane są wszystkie pliki związane z projektem. Zanotuj, gdzie jest to na komputerze, aby znaleźć swoje pliki.
Wybierz API 24: Android 7.0 (Nougat) z menu w polu Minimalny SDK. Minimalny SDK wskazuje minimalną wersję Androida, na której może działać aplikacja.
Komunikat, który wygląda podobnie do tego, informuje o utworzie projektu.
Po naciśnięciu Splitu należy zobaczyć trzy obszary:
W widoku projektu można zobaczyć popustową z tym tekstem:
W tej sekcji będziesz nadal badać Android Studio, zapoznając się ze strukturą pliku.
Jest to standardowy widok i organizacja plików, których używasz. Jest to przydatne podczas pisania kodu do projektu, ponieważ możesz łatwo uzyskać dostęp do plików, nad którymi będziesz pracować w aplikacji. Jeśli jednak spojrzysz na pliki w przeglądarce plików, takich jak Finder lub Eksplorator Windows, hierarchia plików jest zorganizowana bardzo różnie.
Teraz, gdy poznałeś Android Studio, nadszedł czas, aby zacząć robić swoją kartkę z życzeniami!
Spójrz na widok kodu MainActivity.kt
- , - I Zauważ, że w tym kodzie są automatycznie generowane funkcje, w szczególności onCreate()
I o. setContent()
Funkcje.
classMainActivity:ComponentActivity(){
overridefunonCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContent{
GreetingCardTheme{
// A surface container using the 'background' color from the theme
Surface(
modifier=Modifier.fillMaxSize(),
color=MaterialTheme.colorScheme.background
){
Greeting("Android")
}
}
}
}
}
W tym w poty, pot w tym, po tym, w, w, w, w pot- wt pot. w pot. w pot. w pot onCreate()
Funkcja jest punktem wyjścia do tej aplikacji na Androida i wywołuje inne funkcje w celu zbudowania interfejsu użytkownika. W programach Kotlin, w programach main()
Funkcja to punkt wejścia/punkt realizacji. W aplikacjach na Androida, onCreate()
Funkcja wypełnia tę rolę.
W tym w poty, pot w tym, po tym, w, w, w, w pot- wt pot. w pot. w pot. w pot. w tym, po tym, a w pot w, w setContent()
Funkcje w obrębie onCreate()
Funkcja jest używana do definiowania układu poprzez funkcje komponujące. Wszystkie funkcje oznaczone @Composable
Niedozowanie można wywołać z setContent()
Funkcja lub z innych funkcji Kompozytowych. Opatrzenie mówi kompilatorowi Kotlin, że ta funkcja jest używana przez Jetpack Compose do generowania interfejsu użytkownika.
Następnie spójrz na Greeting()
Funkcja. W tym w poty, powtachnie powt (tj. w potytach po wt. w pot. w potytachach w pot Greeting()
Funkcja jest funkcją kompatybilną, zw. @Composable
Podopatrzenie nad nim. Ta funkcja Kompozytowa pobiera pewne dane wejściowe i generuje to, co jest wyświetlane na ekranie.
@Composable
funGreeting(name:String,modifier:Modifier=Modifier){
Text(
text="Hello$name!",
modifier=modifier
)
}
Dowiedziałeś się już wcześniej o funkcjach (jeśli potrzebujesz odświeżenia, odwiedź CreateandusefunctionsinKotlin codelab), ale istnieje kilka różnic w stosunku do funkcji komponowania.
@Composable
Nazwanie przed funkcją.@Composable
Nazwy funkcji są kapitalizowane.@Composable
Funkcje nie mogą nic zwrócić.@Composable
funGreeting(name:String,modifier:Modifier=Modifier){
Text(
text="Hello$name!",
modifier=modifier
)
}
W tej chwili Greeting()
Funkcja przyjmuje nazwę i wyświetlacze Hello
- To dla tej osoby.
Greeting()
Funkcjonuj, aby przedstawić siebie zamiast powiedzieć "Cześć":@Composable
funGreeting(name:String,modifier:Modifier=Modifier){
Text(
text="Hi,mynameis$name!",
modifier=modifier
)
}
Wspaniale! Zmieniłeś tekst, ale wprowadza Cię jako Android, który prawdopodobnie nie jest twoim imieniem. Następnie spersonalizujesz go, aby przedstawić Ci swoje imię!
W tym w poty, pot w tym, po tym, w, w, w, w pot- wt pot. w pot. w pot. w pot. w tym, po tym, a w pot w GreetingPreview()
Funkcja to fajna funkcja, która pozwala zobaczyć, jak wygląda Twoja komposowat bez konieczności budowania całej aplikacji. Aby umożliwić podgląd komponowania, adnotacja z @Composable
I @Preview
.. W tym w poty, pot w tym, po tym, w, w, w, w pot- wt pot. w pot. w pot. w pot. w tym, po tym, a w pot w @Preview
Podopatrzenie informuje Android Studio, że ten kompozytorz powinien być wyświetlany w widoku projektu tego pliku.
Jak widzisz, @Preview
Podatek adnotacyjny przyjmuje parametr o nazwie showBackground
.. Jeśli showBackground
Jest ustawiony na true, doda tło do Twojego zgodnego podglądu.
Ponieważ Android domyślnie używa lekkiego motywu dla edytora, może być trudno dostrzec różnicę między showBackground
=
true
I showBackground
=
false
.. Jest to jednak przykład, jak wygląda różnica. Zauważ białe tło na obrazie ustawiony true
..
showBackground - prawdziwe |
showBackground - false |
GreetingPreview()
Funkcjonuj z twoim imieniem. Następnie odbuduj i sprawdź swoją spersonalizowaną kartkę z życzeniami!@Preview(showBackground=true)
@Composable
funGreetingPreview(){
GreetingCardTheme{
Greeting("Meghan")
}
}
Teraz masz tekst wstępny, ale jest trochę nudny! W tej sekcji nauczysz się zmieniać kolor tła.
Aby ustawić inny kolor tła do wprowadzenia, musisz otoczyć tekst Surface
.. A A Surface
Jest to pojemnik, który reprezentuje odcinek interfejsu użytkownika, w którym można zmienić wygląd, na przykład kolor tła lub granica.
Surface
, podkreśl linię tekstu, naciśnij ( Alt+Enter
Dla systemu Windows lub Option+Enter
Na Mac), a następnie wybierz Surround z widgetem.Domyślnym kontenerem, który ci da, jest Box
, ale możesz to zmienić na inny typ kontenera. Dowiesz się o Box
Układ później w trakcie kursu.
Box
I rodzaj Surface()
Zamiast tego.@Composable
funGreeting(name:String,modifier:Modifier=Modifier){
Surface(){
Text(
text="Hi,mynameis$name!",
modifier=modifier
)
}
}
Surface
Kontener dodaj color
Parametr, ustaw go na Color
..@Composable
funGreeting(name:String,modifier:Modifier=Modifier){
Surface(color=Color){
Text(
text="Hi,mynameis$name!",
modifier=modifier
)
}
}
Color
Możesz zauważyć, że jest czerwony, co oznacza, że Android Studio nie jest w stanie tego rozwiązać. Aby rozwiązać ten przewijanie do góry pliku, w którym jest napisane, importuj i naciśnij trzy przyciski.importandroidx.compose.ui.graphics.Color
Pełna lista importu będzie wyglądać podobnie do tej.
importandroid.os.Bundle
importandroidx.activity.ComponentActivity
importandroidx.activity.compose.setContent
importandroidx.compose.foundation.layout.Box
importandroidx.compose.foundation.layout.fillMaxSize
importandroidx.compose.material3.MaterialTheme
importandroidx.compose.material3.Surface
importandroidx.compose.material3.Text
importandroidx.compose.runtime.Composable
importandroidx.compose.ui.Modifier
importandroidx.compose.ui.tooling.preview.Preview
importcom.example.greetingcard.ui.theme.GreetingCardTheme
importandroidx.compose.ui.graphics.Color
Możesz otworzyć Optimize Imports bezpośrednio z menu: Kod > Optymalizuj import. Korzystanie z opcji wyszukiwania Help pomoże Ci znaleźć element menu, jeśli nie pamiętasz, gdzie jest.
Pełna lista importu będzie wyglądać teraz tak:
importandroid.os.Bundle
importandroidx.activity.ComponentActivity
importandroidx.activity.compose.setContent
importandroidx.compose.foundation.layout.fillMaxSize
importandroidx.compose.material3.MaterialTheme
importandroidx.compose.material3.Surface
importandroidx.compose.material3.Text
importandroidx.compose.runtime.Composable
importandroidx.compose.ui.Modifier
importandroidx.compose.ui.graphics.Color
importandroidx.compose.ui.tooling.preview.Preview
importcom.example.greetingcard.ui.theme.GreetingCardTheme
Jest to jedna z fajnych funkcji w Android Studio, jest inteligentna i pomoże Ci, kiedy tylko może. W tym przypadku wie, że chcesz określić kolor, więc zasugeruje różne kolory.
@Composable
funGreeting(name:String,modifier:Modifier=Modifier){
Surface(color=Color.Cyan){
Text(
text="Hi,mynameis$name!",
modifier=modifier
)
}
}
Teraz Twój tekst ma kolor tła, następnie dodasz trochę przestrzeni (padding) wokół tekstu.
A A M
odifier
Jest używany do powiększania lub dekorowania komponowania. Jednym z modyfikatorów, którego możesz użyć, jest padding
Modyfikator, który dodaje przestrzeń wokół elementu (w tym przypadku dodawanie przestrzeni wokół tekstu). Osiąga się to poprzez użycie Modifier
.
padding()
Funkcja.
Każda komposowalna powinna mieć opcjonalny parametr typu Modifier
.. To powinien być pierwszy opcjonalny parametr.
modifier
W przypadku rozmiaru 24.dp
..@Composable
funGreeting(name:String,modifier:Modifier=Modifier){
Surface(color=Color.Cyan){
Text(
text="Hi,mynameis$name!",
modifier=modifier.padding(24.dp)
)
}
}
Upewnij się, że używasz Optimize Imports, aby alfabetyzować nowy import.
importandroidx.compose.ui.unit.dp
importandroidx.compose.foundation.layout.padding
Gratulacje - zbudowałeś swoją pierwszą aplikację na Androida w Compose! To dość ogromne osiągnięcie. Poświęć trochę czasu, aby pobawić się różnymi kolorami i tekstem, zrobić to własne!
packagecom.example.greetingcard
importandroid.os.Bundle
importandroidx.activity.ComponentActivity
importandroidx.activity.compose.setContent
importandroidx.compose.foundation.layout.fillMaxSize
importandroidx.compose.foundation.layout.padding
importandroidx.compose.material3.MaterialTheme
importandroidx.compose.material3.Surface
importandroidx.compose.material3.Text
importandroidx.compose.runtime.Composable
importandroidx.compose.ui.Modifier
importandroidx.compose.ui.graphics.Color
importandroidx.compose.ui.tooling.preview.Preview
importandroidx.compose.ui.unit.dp
importcom.example.greetingcard.ui.theme.GreetingCardTheme
classMainActivity:ComponentActivity(){
overridefunonCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContent{
GreetingCardTheme{
// A surface container using the 'background' color from the theme
Surface(
modifier=Modifier.fillMaxSize(),
color=MaterialTheme.colorScheme.background
){
Greeting("Android")
}
}
}
}
}
@Composable
funGreeting(name:String,modifier:Modifier=Modifier){
Surface(color=Color.Cyan){
Text(
text="Hi,mynameis$name!",
modifier=modifier.padding(24.dp)
)
}
}
@Preview(showBackground=true)
@Composable
funGreetingPreview(){
GreetingCardTheme{
Greeting("Meghan")
}
}
Dowiedziałeś się o Android Studio i zbudowałeś swoją pierwszą aplikację na Androida z Compose, świetną pracą!
Ten codelab jest częścią kursu Android Basics with Compose. Aby dowiedzieć się, jak uruchomić aplikację na emulatorze lub urządzeniu fizycznym, sprawdź kolejne płyty kodowe w tej ścieżce.
@Composable
adnotacja przed pełnieniem funkcji, @Composable
Funkcje nie mogą nic zwrócić.Modifier
Jest używany do powiększania lub dekorowania swojego komposable.
khjkjkjkj