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
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.
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.
Ctrl + F12
Będzie to symulować obracanie telefonu komórkowego.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.
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