Elemente Constraint Layout schieben sich alle in die Ecken

  • Antworten:4
Fabian Schmitt
  • Forum-Beiträge: 3

27.07.2017, 07:15:22 via Website

Schönen guten Morgen,
ich bin dabei meine ersten Erfahrungen mit Android Studio zu sammeln und bin dabei auch gleich schon auf mein erstes Problem gestoßen. Ich möchte mit einem ConstraintLayout eine Oberfläche erstellen. Auf der Oberfläche befindet sich ein Label und zwei Buttons. Wenn ich das Ganze nun im Emulator starte rutschen die beiden Buttons in die linke obere Ecke. Das Label aber bleibt korrekt an der von mir positionierten Stelle stehen. Das Label war schon erzeugt als ich mein Projekt erstellt habe (hello world).

Unterschied im XML zwischen dem Label und den Button´s ist, dass bei den Buttons die codezeilen, die mit app:layout_constraint... beginnen, fehlen!

Ich habe die Buttons mittels des Design-Editors zusammengeklickt. Könnt Ihr mir sagen, warum die entsprechenden Codezeilen fehlen, bzw. wo das Problem liegt?

Über eine antwort wäre ich sehr dankbar! :)

Code:

android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.u0017007.coffeecounter.MainActivity">

<TextView
    android:layout_width="136dp"
    android:layout_height="30dp"
    android:text="Hello World!"
    android:textSize="24sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.234" />

<Button
    android:id="@+id/buttonAddCoffee"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:freezesText="false"
    android:text="@string/add_coffee"
    tools:layout_editor_absoluteX="16dp"
    tools:layout_editor_absoluteY="231dp" />

<Button
    android:id="@+id/buttonRemoveCoffee"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/remove_coffee"
    tools:layout_editor_absoluteX="236dp"
    tools:layout_editor_absoluteY="231dp" />

</android.support.constraint.ConstraintLayout>

— geändert am 27.07.2017, 07:48:43 durch Moderator

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

27.07.2017, 07:48:13 via App

Hallo Fabian!
Ich habe deinen Threadtitel mal angepasst.
Bitte achte beim nächsten Thread auf einen aussagekräftigeren Titel.
Danke :)



Die Frage ist warum nutzt du ein ConstraintLayout? Was versprichst du dir davon?
Mit einem Linear/Relative Layout geht es deutlich einfacher.

— geändert am 27.07.2017, 07:49:02

LG Pascal //It's not a bug, it's a feature. :) ;)

swa00

Antworten
Fabian Schmitt
  • Forum-Beiträge: 3

27.07.2017, 08:44:45 via Website

Vielen Dank für die schnelle Antwort. Ich bin gerade neu in der Android Entwicklung eingestiegen und habe gedacht, dass das ConstraintLayout, dadurch, dass es sehr neu ist, das komfortabelste ist...
Ich bin nicht abgeneigt mir das Linear/Relative Layout anzusehen :)

Aber dennoch wäre es schön eine Lösung für das Problem zu haben! :)

mfg. fabi

Antworten
swa00
  • Forum-Beiträge: 3.704

27.07.2017, 08:56:01 via Website

Hallo Fabian,

im Grunde genommen hast du nicht unrecht , jedoch ist es bei weitem Vorteilhafter, dass du
Dich in der Basis mit Linear/Relative auseinander setzt, denn Constarint kannst du nur in in
recht wenigen Fällen benutzen und die Anwendung muss passen.
zu 99% benötigst du Linear/Relative.

Bis dahin musst du dir deinen Kaffe ( auch wenn intravenös) selbst zählen :-)

— geändert am 27.07.2017, 08:56:32

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Fabian Schmitt
  • Forum-Beiträge: 3

27.07.2017, 09:08:47 via Website

Ah okay, dass man das nur selten benutzen kann war mir nicht bewusst! ich war eher der auffassung, dass es so zu sagen der "moderne Nachfolger" des Linear Layouts ist :D

Dann werde ich mir wohl mal das Linear Layout ansehen :)
Danke für die Info!

Trotz alledem, würde ich mich über eine Lösung meines Problemes freuen!
Jeder kennt das störende Gefühl wenn man im Code einen Fehler hat und dazu keine Lösung :D :D

Antworten