2016-05-13 17 views
6

ho implementare NonSwipeableViewPager con un frammento ha NestedScrollView come questo, quello che mi aspetto è che lo ScrollView può scorrere verso l'alto e mostrare 2 textviews:NestedScrollView non poteva scorrere con match_parent bambino altezza

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <include 
       android:id="@+id/header" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       layout="@layout/header" /> 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:layout_centerHorizontal="true" 
       android:layout_marginBottom="16dp" 
       android:src="@drawable/ic_up" /> 

     </RelativeLayout> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Text 1" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Text 2" /> 

    </LinearLayout> 

</android.support.v4.widget.NestedScrollView> 

Ma non poteva scorrere, ho provato molti modi, ma ancora non ha ottenuto alcuna soluzione

+1

ScrollView ha bisogno l'altezza del loro bambino da wrap_content –

+0

@TimCastelijns in modo che non ci sono modi per farlo con l'altezza match_parent, vero? –

+0

funziona come una scrollview, puoi impostare la scrollview in modo che corrisponda a parent, ma non al child della scrollview, che deve essere contenuto wrap –

risposta

27
<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

Questo LinearLayout dovrebbe avere android:layout_height="wrap_content".

Il motivo è che se il figlio della scrollview ha le stesse dimensioni della scrollview stessa (sia match_parent per altezza) significa che non c'è nulla da scorrere, poiché sono della stessa dimensione e la scrollview sarà solo come alto come lo schermo.

Se l'uscita lineare ha un'altezza di wrap_content, l'altezza non è correlata all'altezza dello schermo e lo scrollview sarà in grado di scorrerlo.

Basta ricordare che uno ScrollView può avere solo 1 figlio diretto, e quel bambino ha bisogno android:layout_height="wrap_content"

+0

Awesome man! ......... –

+1

Per me, solo ' fillViewPort = true' woked. L'altezza del bambino non contava nel mio caso –

+0

fillViewPort = true anche risolto per me. Grazie! –

-4

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
+1

puoi spiegare di più la tua risposta? – Caipivara

1

Nel mio caso app:layout_behavior="@string/appbar_scrolling_view_behavior" questo funziona solo se qualche problema si faccia sarà provarlo e potrebbe anche risolvere il tuo problema. dovresti aggiungere anche android:fillViewport="true" ma senza che il mio codice funzioni.

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:background="@drawable/subscription_background" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 
Problemi correlati