Ändern Sie AppBarLayout Höhe programmatisch in Android

7

Ich versuche, Flexible Space mit Bildmuster zu implementieren, dieses Tutorial .

Alles funktioniert gut.

Beachten Sie die Höhendefinition des AppBarLayout, das 192dp ist.

Ich möchte stattdessen die Höhe 1/3 des Bildschirms angeben, um dieses Google-Beispiel für das Muster hier .

Hier ist der Code in der Aktivität onCreate (das Layout-XML ist genau das gleiche wie im Tutorial):

%Vor%

Aber aus irgendeinem Grund ist das Ergebnis nicht das, was ich erwarte. Ich kann die App-Leiste mit diesem Code überhaupt nicht sehen. (Ohne den Code wird die Höhe wie erwartet angezeigt, aber sie stammt aus XML und kann nicht dynamisch festgelegt werden).

    
Jjang 11.07.2015, 22:26
quelle

2 Antworten

23

Tun Sie dies stattdessen:

%Vor%

In deinem ursprünglichen Code glaube ich, dass du die Berechnung für 1/3 des Bildschirms falsch gemacht hast, aber du hättest trotzdem etwas sehen sollen. Es könnte sein, dass der LayoutParams.MATCH_PARENT in der setLP () nicht korrekt importiert wurde. Deklarieren Sie immer zuerst den Ansichtstyp, d. H. CoordinatorLayout.LayoutParams, um sicherzugehen. Andernfalls kann es beispielsweise einfach sein, ein Framelayout.LayoutParams zu verwenden.

    
Brett Nottingham 11.07.2015, 23:24
quelle
3

Einige Methoden, um die AppBarLayout-Höhe programmatisch mit Teilung, Prozent oder Gewicht der Bildschirmhöhe zu ändern:

%Vor%

Wenn Sie den Richtlinien für das Materialdesign folgen möchten, sollte die Höhe der Standardhöhe plus Inhaltserhöhung (en) entsprechen. Ссылка

    
TouchBoarder 09.11.2015 22:09
quelle