Zum Inhalt springen

Android widgets platzieren


Gateway_man

Empfohlene Beiträge

Hallo,

ich habe die Aufgabe ein Programm zu schreiben, welches Daten aus der Datebank holt und wieder wegschreibt. Diese Anwendung soll auf Android laufen. Ich hatte mich dann also für Java entschieden und mir das entsprechende Android SDK runtergeladen. Da es ja scheinbar unter android kein Swing gibt, sondern stattdessen ein namespace namens Android.widget dafür hergenommen wird, habe ich diesbezüglich ein paar Fragen.

Für mich ist es unerlässlich das ich die Controls des UI im Code definieren kann, was ja prinzipiell möglich ist.

Nun wollte ich aber die Platzierung absolut über den Code tätigen.

Sprich:


Button1.setLocation(x,y);

Da macht mir die Klasse einen Strich durch die Rechnung, da es diese Property nicht gibt und ich noch kein vergleichbares Äquivalent dazu gefunden habe.

Dann habe ich mich ein wenig eingelesen und fand herraus das man die Componenten in einer xml datei definiert und deren Positionierung über obskure Begrifflichkeiten wie Margin left etc. , welche mich schmerzlicherweise an html und konsorten erinnerten, gesetzt wird.

So nun meine Primären Fragen:

1. Muss ich zwangsweise auf diese nervende xml Datei zur Controlls-Deklarierung zurückgreifen.

2. Muss ich diese absolut nichtssagenden html und css Positionierungswörter nutzen oder gibt es eventuell nicht doch irgendeine Möglichkeit das ganze über Absolute Kooridnaten zu regeln. (Bitte keine Antworten wie, damit bist du nicht flexibel genug)

lg

Gateway

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eigentlich benutzt man bei Andorid keine Absoluten Koordinaten sondern definiert verschiedene Layouts. Es gibt allerdings auch ein AbsoluteLayout.

Wie lupo49 schon schrieb, der "normale" Weg geht über die layout.xml.

Du kannst aber auch die Controls im Code definieren und setzen. Da (ich glaub fast alle) Controls / Widgets von "View" erben, kannst Du dort nachlesen wie die entsprechenden Methoden heißen.

Wenn Du ein AbsoluteLayout verwendest, fügst Du diesem die Widgets hinzu und übergibst noch ein "LayoutParams"-Objekt. Das beschreibt dann die Größe/Pos:


AbsoluteLayout abslay=new AbsoluteLayout(this);

Button btn=new Button(this);

btn.setText("Hello");

//ctor: AbsoluteLayout.LayoutParams(width,height,position X,position Y)

AbsoluteLayout.LayoutParams params = new AbsoluteLayout.LayoutParams(AbsoluteLayout.LayoutParams.WRAP_CONTENTAbsoluteLayout.LayoutParams.WRAP_CONTENT,10,100);

abslay.addView(btn, params);

setContentView(abslay);

Allerdings hat das AbsoluteLayout einen entscheidenden Nachteil: es als bereits als "deprecated" markiert...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...