У меня есть следующий код:
/**
* The tab that's is going to stay in the Home Section
* @type {[type]}
*/
const HomeTab = createMaterialTopTabNavigator({
//Home: Home,
PostFriends: PostFriends,
// Another screens
}, {
tabBarComponent: null,
mode: 'hide',
navigationOptions: {
visible: false // Now I don't want to see this tab, but I'll need it in the future
}
});
/**
* The Stack that
* @type {[type]}
*/
const HomeStack = createStackNavigator({
HomeTab: HomeTab,
// Another screens
}, {
headerMode: 'float',
cardStyle: {
top: -20 // This is the value that I want to change it to make the animation
}
});
В резюме, как вы можете видеть, у меня есть скрытый TabNavigator, который находится внутри StackNavigator, и я хочу анимировать заголовок этого последнего какзаголовки наиболее распространенных приложений, которые, когда экран прокручивается вниз, затем заголовок идет вверх, пока не исчезнет.
Теперь я нахожусь внутри экрана PostFriend, на котором есть ScrollView с большим количеством данных, поэтому я хочудоступ к HomeStack, когда я прокручиваю на этом экране, чтобы изменить атрибуты "cardStyle" и "navigationOption", чтобы изменить его значения и сделать анимацию.
Это код моего экрана:
export default class PostFriends extends React.Component {
static navigationOptions = ({ navigation }) => {
const { params } = navigation.state;
// I tried a lot of black magic to
// connect with the HomeStack
};
/**
* Constructor of the component
* @param {[type]} props [description]
* @return {[type]} [description]
*/
constructor(props) {
super(props);
// Some attributes
}
render() {
return (
<ScrollView>
// A lot of data
</ScrollView>
);
}
}