Breite und Höhe eines Layouts auslesen

  • Antworten:3
yugox
  • Forum-Beiträge: 27

18.06.2018, 11:05:14 via Website

Hallo Zusammen,

kann mir jemand sagen wie ich die Höhe und Breite eines Layouts auslesen kann und die Werte weiterverwenden?

Ich habe schon folgendes gemacht:

      final LinearLayout linearLayout = (LinearLayout)findViewById(R.id.layoutGamefield);
    ViewTreeObserver viewTreeObserver = linearLayout.getViewTreeObserver();
    viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            linearLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            int width  = linearLayout.getMeasuredWidth();
            int height = linearLayout.getMeasuredHeight();

            generateFields.setWidth(width);
        }
    });

Ich verstehe nicht wieso der Wert nicht weiter gegeben wird. Wenn ich mir getWidth(). anschaue ist dort der Wert 0, aber auf der Position "int width" wird der richtige Wert ausgelesen, wieso wird das nicht übergeben und wie kann ich das realisieren?

Kommentieren
swa00
  • Forum-Beiträge: 3.704

18.06.2018, 11:16:03 via Website

Fehleintrag ....

— geändert am 18.06.2018, 11:17:19

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

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

18.06.2018, 11:41:07 via Website

Hallo
ich kann nicht nachvolnlziehen was du damit meinst.

ich verstehe nicht wieso der Wert nicht weiter gegeben wird. Wenn ich mir getWidth(). anschaue ist dort der Wert 0, aber auf der Position "int width" wird der richtige Wert ausgelesen, wieso wird das nicht übergeben und wie kann ich das realisieren?

wo ist da im code ein getWidth()?
Die Variable width ist lokal und somit nur in der Methote sichtbar.

wieso Überhaupt "getMeasuredWidth()" und nicht nur "getWidth();"

Beschreibe bitte etwas genauer.

— geändert am 18.06.2018, 11:44:34

Hilfreich?
Kommentieren
yugox
  • Forum-Beiträge: 27

18.06.2018, 11:49:28 via Website

Das Problem habe ich nun gelöst. Das getWidth() wird in einer anderen Klasse aufgerufen. Ich wollte den Wert an einer anderen Klasse übergeben und ihn dort weiterverwenden.
Das Problem war, dass der Wert aus getViewTreeObserver() logischerweise am Ende des Aufbau, der Activity angesprochen wird und ich ihn aber in der anderen Klasse vorher auslesen wollte.

Nun ändere ich die Breite und Höhe ganz am Ende und es klappt super.

Hilfreich?
Kommentieren