Я хочу добиться чего-то вроде анимации whatsapp, где панель инструментов скрыта во время прокрутки вниз и показывается назад, когда прокручивается вверх, когда панель вкладок всегда прилипает к вершине, пока я использовал Animated, чтобы установить высоту панели инструментов на 0 при прокрутке вниз и назад нормально, когда прокрутка вверх, но проблема заключается в том, что панель инструментов скрыта, высота прокрутки изменяется, чтобы покрыть область, а также запускает onscroll, поэтому я получаю ту странную анимацию, где панель инструментов продолжает показывать и скрывать несколько раз.Как достичь анимации приложения, где панель инструментов исчезает при прокрутке вниз и вкладках вверх?
Что App Анимация
Это то, что я пытался до сих пор
Панель
<Animated.View style={{height: this.state._showHeaderTitle}}>
<ToolbarAndroid
titleColor={'#FFF'}
title={this.props.title}
navIcon={images.arrowBack}
onIconClicked={() => this._goBack()}
onActionSelected={() => {}}
actions={[{title: 'Search', icon: images.search, show: 'always'}]}
style={[{backgroundColor: '#528eff', width: this.windowWidth, height: 48}]}/>
</Animated.View>
ScrollView
<ScrollView scrollEventThrottle={16}
onScroll={(event) => this.detectScrollPosition(event)}
style={{height: this.windowHeight - this.state.headerTitleCurrentHeight, flexDirection: 'column'}}>
<View
style={[styles.highNormalLowDocListBody]}>
<ListView
dataSource={this.state.documents}
enableEmptySections={true}
renderRow={(rowData) => this._renderRow(rowData)}
/>
</View>
</ScrollView>
OnScroll
detectScrollPosition(event) {
var currentOffset = event.nativeEvent.contentOffset.y;
var direction = currentOffset > this.state.offset ? 'down' : 'up';
this.setState({offset: currentOffset});
console.log('Begin Scroll');
if (direction === 'up') {
Animated.spring(this.state._showHeaderTitle, {
toValue: 48,
velocity: 6
}).start();
this.setState({headerTitleCurrentHeight: 48});
} else {
Animated.spring(this.state._showHeaderTitle, {
toValue: 0,
velocity: 6
}).start();
this.setState({headerTitleCurrentHeight: 0});
}
};
Пройдите дизайн материалов в android. http://android-developers.blogspot.in/2015/05/android-design-support-library.html –
Посмотрите на 'CoordinateLayout' несколько примеров: https://guides.codepath.com/android/Handling-Scrolls- with-CoordinatorLayout –
Вы должны поработать над этим. . –