UNPKG

at-rn-android-kit

Version:

为 React Native 开发 提供的一些Android原生模块/组件 (react native, CoordinatorLayout, AppBarLayout, TabLayout, NestedScrollView, PopupWindow)

91 lines (77 loc) 2.81 kB
import React, { PropTypes, PureComponent, } from 'react'; import { UIManager, View, findNodeHandle, requireNativeComponent } from 'react-native'; import Layout from './layout'; import { LayoutParams, ViewGroupProperties } from './types'; const MaoKitsCollapsingToolbarLayoutManager = UIManager.MaoKitsCollapsingToolbarLayoutAndroid; const Constants = MaoKitsCollapsingToolbarLayoutManager.Constants; export interface CollapsingToolbarLayoutLayoutParams extends LayoutParams { collapseMode?: CollapsingToolbarLayout.CollapseMode; collapseParallaxMultiplier?: number; } export interface CollapsingToolbarLayoutProps extends ViewGroupProperties { contentScrimColor?: string; collapsedTitleGravity?: number; tcollapsedTitleColor?: string; expandedTitleColor?: string; expandedTitleGravity?: number; expandedTitleMargin?: number[]; expandedTitleMarginStart?: number; expandedTitleMarginTop?: number; expandedTitleMarginEnd?: number; expandedTitleMarginBottom?: number; scrimAnimationDuration?: number; scrimVisibleHeightTrigger?: number; scrimsShown?: boolean; scrimsShownAnimate?: boolean; statusBarScrimColor?: string; title?: string; titleEnable?: boolean; } export class CollapsingToolbarLayout extends PureComponent<CollapsingToolbarLayoutProps, any> { componentDidMount() { Layout.setChildrenLayoutParams(this, MaoKitsCollapsingToolbarLayoutManager); }; render() { let props = Object.assign({}, this.props); props.expandedTitleMargin = props.expandedTitleMargin || []; props.expandedTitleMargin[0] = props.expandedTitleMarginStart || props.expandedTitleMargin[0] || 0; props.expandedTitleMargin[1] = props.expandedTitleMarginTop || props.expandedTitleMargin[1] || 0; props.expandedTitleMargin[2] = props.expandedTitleMarginEnd || props.expandedTitleMargin[2] || 0; props.expandedTitleMargin[3] = props.expandedTitleMarginBottom || props.expandedTitleMargin[3] || 0; delete props.expandedTitleMarginStart; delete props.expandedTitleMarginTop; delete props.expandedTitleMarginEnd; delete props.expandedTitleMarginBottom; props.scrimsShown = [ !!props.scrimsShown, !!props.scrimsShownAnimate ]; delete props.scrimsShownAnimate; return ( <RCTCollapsingToolbarLayout {...props} > {this.props.children} </RCTCollapsingToolbarLayout> ); } } const RCTCollapsingToolbarLayout: any = requireNativeComponent( 'MaoKitsCollapsingToolbarLayoutAndroid', CollapsingToolbarLayout, { nativeOnly: {} } ); export default CollapsingToolbarLayout;