2015-09-30 18 views
31

Jak widać w załączonym pliku GIF, nie można przewinąć przez ListView. Widok zostanie przywrócony do pierwotnej pozycji, gdy tylko zwolnię przycisk myszy.ListView nie przewija się

Przeczytałem dokumentację i wygląda na to, że przewijanie powinno się odbyć pod po prostu. Oto realizacja render():

render: function(){ 
    return (
    <ListView 
     automaticallyAdjustContentInsets={false} 
     initialListSize={9} 
     dataSource={this.state.dataSource} 
     renderRow={this.renderTrack} 
     renderSectionHeader={this.renderSectionHeader}/> 
); 

enter image description here

Odpowiedz

37

Twój ListView rzeczywistości może być dość mała, ale nie wydaje się, że droga do widzialnej zrobić przelew. Spróbuj ustawić flex: 1 lub height: 587 we właściwości stylu ListView.

+1

Ustawienie wysokości podstępem! Czy mogę zapytać, dlaczego wybrałeś 587? – jamesfzhang

+3

Twój zrzut ekranu miał wysokość 587 pikseli =). Bardziej ogólnym rozwiązaniem jest użycie flex: 1 w hierarchii widoku aż do katalogu głównego. – ide

+13

Użycie samego 'flex: 1' nie naprawiło tego. Nie sądzę jednak, żebym mógł ustawić wysokość statyczną, ponieważ musi być kompatybilna z różnymi rozmiarami iPhone'ów. EDYCJA: okazuje się, że ten kontener nadrzędny ListView nie miał 'flex: 1', który załatwił sprawę. – jamesfzhang

0

To dzięki tej właściwości, zakładam masz tylko jeden, może dodać nagłówek za lepki rzędu ?:

renderSectionHeader funkcji

(sectionData, sectionID) => renderable

Jeśli jest to przewidziane, dla tej sekcji renderowany jest lepki nagłówek. Lepkie zachowanie oznacza, że ​​będzie przewijać zawartość na górze sekcji , aż dotrze do górnej części ekranu, w którym to momencie będzie trzymać się góry, aż zostanie zepchnięty z ekranu przez następną sekcję nagłówek.

21

Jedyny raz widziałem to, gdy contentContainerStyle jest ustawiony na flex: 1. Usuń flex, jeśli tak jest.

+2

Dzięki! Naprawiłem to dla mnie. – fundead

+0

Dzięki! rozglądałem się za 30 min haha! – WilomGfx

8

ustawienie flex:1 do rodzica listy zrobił mi lewę za mnie.

+1

Pracował jak urok. Ta odpowiedź powinna zdobyć więcej upvotes! –

+0

byłoby wspaniale, gdyby ktoś mógł to wyjaśnić :) – roocell

+0

Nie wiem dlaczego, ale działa dla mnie. – klvs

3

Miałem ten sam problem, miałem View owijanie ListView, usunąłem zewnętrzny View i teraz działa zgodnie z oczekiwaniami.

Powiązane problemy