Commit ff3cfc29 authored by xwenliang's avatar xwenliang

fix #86: picker show behind Modal

parent bdcc50d6
...@@ -23,5 +23,5 @@ android { ...@@ -23,5 +23,5 @@ android {
dependencies { dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs') compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.facebook.react:react-native:0.20.1' compile 'com.facebook.react:react-native:+'
} }
...@@ -7,9 +7,4 @@ ...@@ -7,9 +7,4 @@
android:fromYDelta="100%" android:fromYDelta="100%"
android:toXDelta="0" android:toXDelta="0"
android:toYDelta="0" /> android:toYDelta="0" />
<!--<alpha-->
<!--android:fromAlpha="0.5"-->
<!--android:duration="500"-->
<!--android:toAlpha="1.0"-->
<!--/>-->
</set> </set>
\ No newline at end of file
...@@ -8,10 +8,4 @@ ...@@ -8,10 +8,4 @@
android:toXDelta="0" android:toXDelta="0"
android:toYDelta="100%" /> android:toYDelta="100%" />
<!--<alpha-->
<!--android:fromAlpha="1.0"-->
<!--android:duration="800"-->
<!--android:toAlpha="0.5"-->
<!--/>-->
</set> </set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="PopAnim"> <style name="Dialog_Full_Screen">
<item name="android:windowEnterAnimation">@anim/popup_enter</item> <item name="android:windowIsFloating">true</item>
<item name="android:windowExitAnimation">@anim/popup_exit</item> <item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@style/PickerAnim</item>
<item name="android:background">@android:color/transparent</item>
</style>
<style name="PickerAnim">
<item name="android:windowEnterAnimation">@anim/picker_enter</item>
<item name="android:windowExitAnimation">@anim/picker_exit</item>
</style> </style>
</resources> </resources>
\ No newline at end of file
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
@property(nonatomic,strong)BzwPicker *pick; @property(nonatomic,strong)BzwPicker *pick;
@property(nonatomic,assign)float height; @property(nonatomic,assign)float height;
@property(nonatomic,strong) UIWindow * window;
@end @end
...@@ -25,32 +26,7 @@ RCT_EXPORT_MODULE(); ...@@ -25,32 +26,7 @@ RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){
UIViewController *result = nil; self.window = [[UIApplication sharedApplication].windows lastObject];
UIWindow * window = [[UIApplication sharedApplication] keyWindow];
if (window.windowLevel != UIWindowLevelNormal)
{
NSArray *windows = [[UIApplication sharedApplication] windows];
for(UIWindow * tmpWin in windows)
{
if (tmpWin.windowLevel == UIWindowLevelNormal)
{
window = tmpWin;
break;
}
}
}
UIView *frontView = [[window subviews] objectAtIndex:0];
id nextResponder = [frontView nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]])
result = nextResponder;
else
result = window.rootViewController;
NSString *pickerConfirmBtnText=indic[@"pickerConfirmBtnText"]; NSString *pickerConfirmBtnText=indic[@"pickerConfirmBtnText"];
NSString *pickerCancelBtnText=indic[@"pickerCancelBtnText"]; NSString *pickerCancelBtnText=indic[@"pickerCancelBtnText"];
...@@ -69,7 +45,7 @@ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){ ...@@ -69,7 +45,7 @@ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){
dataDic[@"pickerData"]=pickerData; dataDic[@"pickerData"]=pickerData;
[result.view.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { [self.window.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[BzwPicker class]]) { if ([obj isKindOfClass:[BzwPicker class]]) {
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
...@@ -98,7 +74,7 @@ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){ ...@@ -98,7 +74,7 @@ RCT_EXPORT_METHOD(_init:(NSDictionary *)indic){
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
[result.view addSubview:_pick]; [self.window addSubview:_pick];
[UIView animateWithDuration:.3 animations:^{ [UIView animateWithDuration:.3 animations:^{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment