Sto utilizzando un ViewPager in un CoordinatorLayout (dall'ultima versione della Libreria di progettazione) in un'attività. Alcuni frammenti di questo ViewPager hanno layout come RecyclerView o NestedScrollView, ma alcuni non possono semplicemente scorrere a causa del loro piccolo contenuto.Frammento senza scorrimento in un ViewPager all'interno di CoordinatorLayout
<android.support.design.widget.AppBarLayout
android:id="@+id/tabanim_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MyTheme">
<android.support.v7.widget.Toolbar
android:id="@+id/tabanim_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/tabanim_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/tabanim_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
Ma in un frammento con un FrameLayout come vista radice, devo avere un pulsante che è ancorata al fondo, ma sembra trarre fuori schermo. Per essere in grado di vederlo, ho bisogno di aggiungere un padding inferiore uguale all'altezza della barra degli strumenti.
<FrameLayout 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:background="@android:color/white">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Home screen"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_gravity="bottom"
android:gravity="center"
android:text="@string/brand"
android:textColor="@color/brandColor"
android:textSize="20sp" />
</FrameLayout>
Analogamente, un layout_gravity impostato a 'centro' su un elemento non sembra essere al centro dell'area visibile per questo frammento.
La mia comprensione è che CoordinatorLayout è concepito per funzionare solo con i contenuti a scorrimento, è corretto? In modo che utilizzando solo il ViewGroup regolare come FrameLayout, RelativeLayout, LinearLayout per i frammenti di ViewPager la parte inferiore venga visualizzata fuori dallo schermo?
In tal caso, devo rimuovere questo pulsante da questo layout di frammento e spostarlo nel layout di attività contenente il CoordinatorLayout? Deve essere mostrato solo sul primo frammento.
Hai mai una soluzione per questo? – g0ld2k
@cdodo hai trovato qualche soluzione? – Erum
Ho trovato una soluzione. Controlla la risposta sotto – jaffa