at-rn-android-kit
Version:
为 React Native 开发 提供的一些Android原生模块/组件 (react native, CoordinatorLayout, AppBarLayout, TabLayout, NestedScrollView, PopupWindow)
62 lines (50 loc) • 1.63 kB
JavaScript
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: {}
}
);