Teil des fragments innerhalb ViewPager immer abgeschnitten am unteren Bildschirmrand(Android)
Ich habe ein basic-Koordinator layout für meine Ansicht:
<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.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:tabIndicatorColor="@color/white"
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="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
Gibt es mehrere tabs in meinem view pager. Ich bin Entsendung eine meiner einfachen Fragmente:
<ListView
android:id="@+id/transferList"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_alignParentRight="true"
android:src="@drawable/ic_add_white" />
Was passiert, ist, dass die FAB geht aus dem Bildschirm. Es ist einfach nicht der FAB, aber auch andere Fragmente mit cardviews/listviews werden immer abgeschnitten, am unteren Rand des Bildschirms. Ich schaute mich nach einer Lösung, und kam mit einem hacky Lösung: Entfernen der Eigenschaft app:layout_scrollFlags="scroll|enterAlways" aus der Symbolleiste.
Kann ich nicht verstehen, was die verursachen könnte dies geschehen, und wie entfernen die oben das problem gelöst. Ist es einige Fehler in der Bibliothek unterstützt? Gibt es einen besseren Weg, um dieses Problem zu lösen? Eine andere Lösung, die ich gekommen war, gegenüber ist hier - halten die FAB-Taste direkt unter einem Koordinator layout in die Aktivität, und machen Sie es sichtbar, nur im fragment, die Sie benötigen. Nicht scheinen, wie eine gute Lösung für mich. Auch andere Ansichten, die in meinem Fragmente wurden auch immer abgeschnitten.
- Ich entfernte
app:layout_scrollFlags="scroll|enterAlways|snap"
und das scrollen funktionierte einwandfrei und der Boden ist nicht immer geschnitten. Wollte nur mal Fragen was sind die Folgen dieser Veränderung? Kommst du über andere Lösungen zu diesem problem? - Ich fand, dass nur das entfernen der
scroll|
Teil war genug. Hoffentlich, dies zu tun, wird es weniger Konsequenzen, als wenn ich entfernt dieapp:layout_scrollFlags
Attribut ganz(?)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil Sie mit
CoordinatorLayout
mitListView
. Sie können ändern, Ihre Umsetzung zuRecyclerView
zu erreichen, korrigieren Sie die Navigationstaste.überprüfen Sie meine Antwort hier. Dies kann Ihnen dabei helfen.
ListView
in meinemViewPager
. (Ich bin mit einemWebView
.)Habe ich behoben, dieses problem durch ändern der Symbolleiste's
app:layout_scrollFlags="scroll|enterAlways"
Attribut nurapp:layout_scrollFlags="enterAlways"
.Habe ich ein layout ähnlich wie bei Ihnen: Tätigkeit bei einer Symbolleiste, geht aus dem top-und-tabs. Und die Voraussetzung für die Fragmente haben Ihren eigenen FABs.
Ich nicht bewältigen konnte es direkt in der xml, so dass ich Sie dann genagelt es auf diese Weise:
Aktivität layout
Fragment-layout:
Und ein bisschen code, um die FAB bleiben, wo es sein soll.
Fragment onCreateView:
Entfernen von Blättern aus der Symbolleiste layout_scrollFlags Attribut. Sie sollte in etwa so Aussehen:
app:layout_scrollFlags="enterAlways|enterAlwaysCollapsed"
Gibt es 2 Lösungen für dieses problem:
scroll
ausapp:layout_scrollFlags
(e.gapp:layout_scrollFlags="enterAlways"
) oder entfernen der gesamtenapp:layout_scrollFlags
scroll
Attribut, das Haupt-layout-Inhalt/fragment verwenden müssenRecyclerView
oderNestedScrollView
.https://code.luasoftware.com/tutorials/android/bottom-of-fragment-in-viewpager-out-of-screen/