UNPKG

at-rn-android-kit

Version:

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

62 lines (50 loc) 1.63 kB
import React, { PureComponent, } from 'react'; import { UIManager, View, findNodeHandle, requireNativeComponent } from 'react-native'; import Layout from './layout'; import { AppBarViewProperties } from './types'; const MaoKitsAppBarLayoutAndroidManager = UIManager.MaoKitsAppBarLayoutAndroid; const Constants = MaoKitsAppBarLayoutAndroidManager.Constants; const DEFAULT_PROPS = { scrollFlags: 0 }; export interface AppBarLayoutProps extends AppBarViewProperties { } export default class AppBarLayout extends PureComponent<AppBarLayoutProps, any> { static SCROLL_FLAG_ENTRY_ALWAYS = Constants.SCROLL_FLAG_ENTRY_ALWAYS; static SCROLL_FLAG_ENTRY_ALWAYS_COLLAPSED = Constants.SCROLL_FLAG_ENTRY_ALWAYS_COLLAPSED; static SCROLL_FLAG_EXIT_UNTIL_COLLAPSED = Constants.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED; static SCROLL_FLAG_SCROLL = Constants.SCROLL_FLAG_SCROLL; static SCROLL_FLAG_SNAP = Constants.SCROLL_FLAG_SNAP; static propTypes = Object.assign({}, AppBarViewProperties); componentDidMount() { Layout.setChildrenLayoutParams(this, MaoKitsAppBarLayoutAndroidManager, DEFAULT_PROPS); }; componentDidUpdate() { Layout.setChildrenLayoutParams(this, MaoKitsAppBarLayoutAndroidManager, DEFAULT_PROPS); }; render() { return ( <RCTAppBarLayout {...this.props} > {this.props.children} </RCTAppBarLayout> ); }; } const RCTAppBarLayout: any = requireNativeComponent( 'MaoKitsAppBarLayoutAndroid', AppBarLayout, { nativeOnly: {} } );