Ändern AppBarLayout Höhe programmgesteuert in Android
Ich versuche, die Anwendung Flexibler Raum mit Bild-Muster, mit dieses tutorial.
Alles funktioniert einwandfrei.
Beachten Sie die Höhe definition der AppBarLayout die 192dp.
Ich würde gerne die Höhe 1/3 des Bildschirms statt, zu entsprechen das google-Beispiel für das Muster hier.
Hier ist der code in der activity onCreate (die layout-xml ist genau das gleiche wie im tutorial):
AppBarLayout appbar = (AppBarLayout)findViewById(R.id.appbar);
float density = getResources().getDisplayMetrics().density;
float heightDp = getResources().getDisplayMetrics().heightPixels / density;
appbar.setLayoutParams(new CoordinatorLayout.LayoutParams(LayoutParams.MATCH_PARENT, Math.round(heightDp / 3)));
Aber aus irgendeinem Grund, das Ergebnis ist nicht das, was ich erwarte. Ich kann nicht finden Sie in der app-Leiste auf alle mit diesem code. (ohne den code, die Höhe zeigt, wie erwartet, aber es ist aus XML und kann nicht dynamisch gesetzt werden).
InformationsquelleAutor Jjang | 2015-07-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tun Sie dies:
In Ihre ursprüngliche code, den ich denke, dass Sie die Berechnung für 1/3 des Bildschirms war falsch, aber man sollte dennoch etwas gesehen haben. Es könnte sein, dass die LayoutParams.MATCH_PARENT in der setLP() wurde nicht korrekt importiert. Immer erklären, die Art der Ansicht, zunächst CoordinatorLayout.LayoutParams nur um sicher zu gehen. Sonst kann es sein, einfach zu bedienen, ein Framelayout.LayoutParams, zum Beispiel.
Einige Methoden zum ändern des AppBarLayout Höhe programmatisch mit Teilung, Prozent oder Gewicht des Bildschirms Höhe:
Wenn Sie möchten, Folgen Sie den material design-Richtlinien die Höhe sollte gleich sein, um die Standard-Höhe plus-Inhalte Schrittweite(s)
https://www.google.com/design/spec/layout/structure.html#structure-app-bar