Spisie treści
A Układ względny to widok grupowy, który pokazuje komponenty w pozycjach względem innego komponentu. Położenie każdego komponentu można określić w odniesieniu do innych elementów, takich jak po lewej stronie przycisku lub poniżej określonego pola tekstowego lub wyrównane do dołu, do lewej lub do środka.Zaczynamy w samouczku Tworzenie natywnych aplikacji dla Androida z Netbeans wyjaśniającym, jak używać Układ liniowyW tym samouczku zobaczymy, że kontener do tworzenia interfejsów w Androidzie to układ względny.
Główną cechą tego układu jest to, że komponenty znajdujące się wewnątrz tego kontenera będą umiejscawiać swoje położenie w stosunku do innych elementów. W ten sposób możemy zdefiniować, że Komponent przycisku znajduje się poniżej komponentu pola tekstowego, który z kolei jest wyrównany poziomo w stosunku do komponentu Label.
Wśród właściwości, które pomagają nam pozycjonować elementy względem innych, są:
android: układ_powyżej: oznacza to, że komponent, który ma tę właściwość, będzie znajdował się nad komponentem, który wskazujemy.
Przykład:
Przycisk zostanie umieszczony nad elementem etykiety, jak wskazano android: layout_above = "@ id / tytuł"
android: layout_alignLeft: Oznacza to, że komponent posiadający tę właściwość musi pokrywać się z lewą krawędzią komponentu, który wskazujemy. Jeśli chcemy, aby pokrywała się z prawą krawędzią, użyjemy android: layout_alignRight.
android: layout_toLeftOf: Oznacza to, że komponent, który ma tę właściwość, będzie znajdował się po lewej stronie komponentu, który wskazujemy.
android: layout_toRightOf: Oznacza to, że komponent, który ma tę właściwość, zostanie umieszczony po prawej stronie komponentu, który wskazujemy.
android: układ_dół: Oznacza to, że komponent, który ma tę właściwość, zostanie umieszczony poniżej komponentu, który wskazujemy.
Zamierzamy zaprogramować prosty przykład kalkulatora w systemie Android, w tym samouczku użyjemy Netbeans i Android SDK, tak jak to zrobiliśmy w samouczku Tworzenie natywnych aplikacji dla Androida za pomocą Netbeans.
Stworzymy projekt LayoutRelativo
Po utworzeniu projektu zaczniemy od projektu w folderze układu, otworzymy plik main.xml i skopiujemy następujący kod:
Następnie napiszemy funkcjonalność w Javie w pliku MainActivity.java
pakiet com.Względny; importuj android.app.Activity; importuj android.os.Bundle; importuj android.widget. *; importuj android.view. *; public class MainActivity extends Activity {// Tworzymy instancje zmiennych i komponentów, których użyjemy // do obliczeń private double number, numberrob; prywatna wartość EditText, wartośćb; prywatny wynik TextView; public void onCreate (Pakiet savedInstanceState) {super.onCreate (savedInstanceState); // Uruchamiamy aplikację z głównym układem setContentView (R.layout.main); // Każdy komponent przypisujemy do zmiennej this.valora = (EditText) findViewById (R.id.numeroa); this.valorb = (EditText) findViewById (R.id.numerob); this.result = (TextView) findViewById (R.id.result); } public void btSumar (Widok widoku) {// Dodaj funkcję // Jeśli obie wartości są większe od zera, jest konwertowane na liczbę dziesiętną i dodawane if (this.value.getText (). toString (). length ( )> 0 && this.valorb.getText ().toString ().length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText ().toString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa + this.numerob))); }} public void btRestar (Widok widoku) {// Funkcja odejmowania // Jeśli obie wartości są większe od zera, jest ona konwertowana na liczbę dziesiętną i odejmowana if (this.value.getText (). toString (). length ()> 0 && this.valorb.getText ().ToString ().Długość ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText ().ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa - this.numerob))); }} public void btMultiplicar (Widok widoku) {// Funkcja mnożenia // Jeśli obie wartości są większe od zera, jest ona konwertowana na liczbę dziesiętną i mnożona if (this.value.getText (). toString (). length ()> 0 && this.valorb.getText ().ToString ().Długość ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText ().ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa * this.numerob))); }} public void btDivide (Widok widoku) {// Funkcja dzielenia // Jeśli obie wartości są większe od zera, jest konwertowane na liczbę dziesiętną i dzielone if (this.value.getText (). toString (). length ()> 0 && this.valorb.getText ().ToString ().Długość ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText ().ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); if (this.numerob! = 0) {this.result.setText (Double.toString ((this.numeroa / this.numerob))); }}} public boolean onCreateOptionsMenu (menu menu) {// tworzenie menu z szablonu lub układu getMenuInflater ().inflate (R.menu.main, menu); zwróć prawdę; }Uruchamiamy aplikację i po uruchomieniu emulatora ujrzymy następujący ekran.
Pierwsze pole tekstowe akceptuje tylko liczby zawierające 1 lub 5, jak wskazaliśmy, które mogą być kombinacją cyfr w specyfikacji projektu z właściwością android: cyfry = „12345”
Dodamy również menu i podmenu w folderze Zasoby Stworzymy folder o nazwie menu i wewnątrz pliku xml o nazwie main.xm, który będzie miał konfigurację menu.
Wewnątrz folderu wartości musimy zadeklarować nazwę menu w pliku stringi.xml
Kalkulator - konfiguracja układu względnegoPonownie uruchamiamy aplikację, a następnie naciskamy przycisk menu i klikamy Ustawienie.
Osiągnęliśmy w pełni funkcjonalną aplikację, aby przetestować jak działa, jeśli odwrócimy telefon i ekran musi się zmieścić, naciskamy:
Ctrl + F12
Będzie to symulować obracanie telefonu komórkowego.Przyciski są pozycjonowane według właściwości, na przykład dla przycisku Odjąć ustawiamy po prawej stronie dodawania i wyrównamy z górną krawędzią przycisku dodawania.
android: layout_toRightOf = "@ id / dodaj" android: layout_alignTop = "@ id / dodaj"W przypadku przycisku użytecznego wyrównujemy go względem pierwszego przycisku do dodania i do ostatniego przycisku do pomnożenia.
android: layout_toRightOf = "@ id / pomnóż" android: layout_alignTop = "@ id / dodaj"Następnie dodamy przycisk z ikoną, w tym celu pobierzemy dowolną ikonę z sieci www.Icofinder.com. Skopiujemy ikonę w folderze Zasoby / do rysowania-mdpi.
Dodajemy kod projektu poniżej przechodzimy do folderu układu, otwieramy plik main.xml.
Główny cel układów relatywnych, jak powiedzieliśmy powyżej dla projektu jest użycie jak najmniejszej liczby zagnieżdżonych układówW tym przykładzie Kalkulatora wykorzystaliśmy pojedynczy układ ze wszystkimi jego komponentami. Dzięki temu aplikacja będzie działać szybciej. Zagnieżdżanie z innym układem spowalnia i obniża wydajność aplikacji.
A Układ Hierarchia względna zazwyczaj Będzie używał mniej układu i będzie miał prostszą obsługę niż hierarchia LinearLayout. Przewaga nad LinearLayout polega na tym, że musimy tworzyć nowy LinearLayout za każdym razem, gdy chcemy zmienić orientację komponentu lub utworzyć dodatkowe widoki. W rezultacie zaleca się, aby najpierw użyć RelativeLayout dla dowolnego układu, który ma jakąkolwiek złożoność.
Co więcej Układ liniowy jest zorientowany tylko pionowo lub poziomo w odniesieniu do komponentu, podczas gdy Layout Relative ma o wiele więcej opcji. Jeśli podobał Ci się i służył Ci ten samouczek, śledź mnie!Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt