ViewPager mit Toolbar und TabLayout hat die falsche Höhe
Ich habe einen ViewPager unten ein AppBarLayout (mit einer Toolbar und einem TabLayout). Ich kann nicht verstehen, warum die Höhe der geladenen Fragmente, die mehr ist als der verfügbare Platz, auch wenn es keine Elemente, so groß, so dass die Registerkarte Scrollbar.
Dies ist die Haupt-layout-xml:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabMode="fixed" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
Wie Sie sehen können, in meinem Fragment habe ich eine Schaltfläche mit einem layout_alignParentBottom aber ich denke, es ist die Dehnung der Höhe der viewpager zu viel.
Hier das layout der design-Ansicht:
- Können Sie Schießen Sie Ihre app?
- Ja, sicher. Hinzugefügt Bildschirm.
- hast du die Lösung für dein problem?Frage deshalb, weil ich mich vor dem exakt gleichen Problem. 🙁
- NÖ, am Ende habe ich etwas verändert, das design.. 🙁
- Wie das aussieht, ist die einzige option übrig..was design-änderung, die Sie vorgenommen haben, in Ihrem Fall?Verschoben logout woanders?
- ja, genau. Ich wusste nicht, beenden Sie die app, denn ich arbeite auch auf anderen Projekt-aber der plan ist, die Umgestaltung ohne die tabs!
- tun Sie dieses problem lösen?
InformationsquelleAutor Enrichman | 2016-04-10
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie versuchen, fügen Sie ein LinearLayout zwischen AppBarLayout und ViewPager. Es funktioniert für mich. 🙂
Hinzufügen eines
padding
zu denViewPager
hat den trick für mich:Beachten Sie, dass die Polsterung hat exakt die gleiche Größe wie die Symbolleisten
height
.Statt
?attr/actionBarSize
,?actionBarSize
ist auch gültig.Mit dieser versuchen.
Hier müssen Sie erklären,
android:fillViewport="false"
Eigenschaft inTab Bar
.Nicht ändern hier in
Tab Bar
.EDIT 1:
Das ist was für mich funktioniert Sie.
Wenn du eine Feste Symbolleiste, ohne zu Blättern, dann können Sie entfernen
CoordinatorLayout
undAppBarLayout
von der layout-Gestaltung und die NutzungRelativeLayout
statt. Es ist die Unterstützung der Bibliothek bug, und hat keine Lösung, bis zu diesem Datum. Sie können benutzen Sie einfach folgenden layout-code fürViewPager
zusammen mitToolbar
undTabLayout
.ViewPager
nicht überlaufen, in diesem Fall, wie es schon betont wurde, in Frage stellen.Hoffe es hilft jemandem!
Haben Sie zu halten das TabLayout außerhalb der AppBarLayout.
Etwas wie dieses.
Dieser arbeitete für mich.
Für mich die einzige Lösung eignet sich auch das klappte mit einem Koordinator Layout, so dass Viewpager layout_height bleibt in Grenzen hinzufügen layout_behaviour auf der Symbolleiste, wie diese:
Wahrscheinlich zu spät für dich, aber vielleicht hilft es jemand anderes.
Das störte mich nicht, als ich anfing meine app, aber später, wenn ich wollte, eine snackbar auf eine andere Registerkarte, die snackbar war nur dann sichtbar, wenn ich gescrollt die Seite.
Habe ich verwendet Relative layout im inneren des CoordinatorLayout
Löste ich dieses problem durch eine änderung
um
und Einstellung
in der ViewPager die XML-Attribute. 0dp bedeutet in diesem Fall so etwas wie match_constraint.
Beispiel für dieses layout:
Bild Links:
android:layout_height="wrap_content"
Bild rechts:android:layout_height="0dp"
tldr;
Ändern
zu
und setzen
layout_constraintBottom_toBottomOf
undlayout_constraintBottom_toBottomOf
im ViewPager die XML-Attribute.Override-Verhalten der view pager Witz, und fügen Sie Ihre Ansicht pager zu diesem.layouts