Expose offset parameters for ToastAndroid
Reviewed By: brosenfeld Differential Revision: D5560628 fbshipit-source-id: b1457493e8429958fbd7bc9c490cffaa33b4a95a
This commit is contained in:
Родитель
f3feca91fc
Коммит
546a43bda0
|
@ -7,6 +7,7 @@
|
||||||
* of patent rights can be found in the PATENTS file in the same directory.
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||||||
*
|
*
|
||||||
* @providesModule ToastAndroid
|
* @providesModule ToastAndroid
|
||||||
|
* @flow
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
@ -23,10 +24,14 @@ var RCTToastAndroid = require('NativeModules').ToastAndroid;
|
||||||
* There is also a function `showWithGravity` to specify the layout gravity. May be
|
* There is also a function `showWithGravity` to specify the layout gravity. May be
|
||||||
* ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER.
|
* ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER.
|
||||||
*
|
*
|
||||||
|
* The 'showWithGravityWithOffset' function adds on the ability to specify offset
|
||||||
|
* These offset values will translate to pixels.
|
||||||
|
*
|
||||||
* Basic usage:
|
* Basic usage:
|
||||||
* ```javascript
|
* ```javascript
|
||||||
* ToastAndroid.show('A pikachu appeared nearby !', ToastAndroid.SHORT);
|
* ToastAndroid.show('A pikachu appeared nearby !', ToastAndroid.SHORT);
|
||||||
* ToastAndroid.showWithGravity('All Your Base Are Belong To Us', ToastAndroid.SHORT, ToastAndroid.CENTER);
|
* ToastAndroid.showWithGravity('All Your Base Are Belong To Us', ToastAndroid.SHORT, ToastAndroid.CENTER);
|
||||||
|
* ToastAndroid.showWithGravityAndOffset('A wild toast appeared!', ToastAndroid.LONG, ToastAndroid.BOTTOM, 25, 50);
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -55,6 +60,16 @@ var ToastAndroid = {
|
||||||
): void {
|
): void {
|
||||||
RCTToastAndroid.showWithGravity(message, duration, gravity);
|
RCTToastAndroid.showWithGravity(message, duration, gravity);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
showWithGravityAndOffset: function (
|
||||||
|
message: string,
|
||||||
|
duration: number,
|
||||||
|
gravity: number,
|
||||||
|
xOffset: number,
|
||||||
|
yOffset: number,
|
||||||
|
): void {
|
||||||
|
RCTToastAndroid.showWithGravityAndOffset(message, duration, gravity, xOffset, yOffset);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = ToastAndroid;
|
module.exports = ToastAndroid;
|
||||||
|
|
|
@ -82,6 +82,34 @@ class ToastExample extends React.Component {
|
||||||
<Text style={styles.text}>Click me.</Text>
|
<Text style={styles.text}>Click me.</Text>
|
||||||
</TouchableWithoutFeedback>
|
</TouchableWithoutFeedback>
|
||||||
</RNTesterBlock>
|
</RNTesterBlock>
|
||||||
|
<RNTesterBlock title="Toast with x offset">
|
||||||
|
<TouchableWithoutFeedback
|
||||||
|
onPress={() =>
|
||||||
|
ToastAndroid.showWithGravityAndOffset(
|
||||||
|
'This is a toast with x offset',
|
||||||
|
ToastAndroid.SHORT,
|
||||||
|
ToastAndroid.CENTER,
|
||||||
|
50,
|
||||||
|
0,
|
||||||
|
)
|
||||||
|
}>
|
||||||
|
<Text style={styles.text}>Click me.</Text>
|
||||||
|
</TouchableWithoutFeedback>
|
||||||
|
</RNTesterBlock>
|
||||||
|
<RNTesterBlock title="Toast with y offset">
|
||||||
|
<TouchableWithoutFeedback
|
||||||
|
onPress={() =>
|
||||||
|
ToastAndroid.showWithGravityAndOffset(
|
||||||
|
'This is a toast with y offset',
|
||||||
|
ToastAndroid.SHORT,
|
||||||
|
ToastAndroid.BOTTOM,
|
||||||
|
0,
|
||||||
|
50,
|
||||||
|
)
|
||||||
|
}>
|
||||||
|
<Text style={styles.text}>Click me.</Text>
|
||||||
|
</TouchableWithoutFeedback>
|
||||||
|
</RNTesterBlock>
|
||||||
</RNTesterPage>
|
</RNTesterPage>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,15 +11,13 @@ package com.facebook.react.modules.toast;
|
||||||
|
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.facebook.react.bridge.NativeModule;
|
import com.facebook.react.bridge.NativeModule;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||||
import com.facebook.react.bridge.ReactMethod;
|
import com.facebook.react.bridge.ReactMethod;
|
||||||
import com.facebook.react.common.MapBuilder;
|
|
||||||
import com.facebook.react.bridge.UiThreadUtil;
|
import com.facebook.react.bridge.UiThreadUtil;
|
||||||
|
import com.facebook.react.common.MapBuilder;
|
||||||
import com.facebook.react.module.annotations.ReactModule;
|
import com.facebook.react.module.annotations.ReactModule;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,4 +74,22 @@ public class ToastModule extends ReactContextBaseJavaModule {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void showWithGravityAndOffset(
|
||||||
|
final String message,
|
||||||
|
final int duration,
|
||||||
|
final int gravity,
|
||||||
|
final int xOffset,
|
||||||
|
final int yOffset) {
|
||||||
|
UiThreadUtil.runOnUiThread(
|
||||||
|
new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Toast toast = Toast.makeText(getReactApplicationContext(), message, duration);
|
||||||
|
toast.setGravity(gravity, xOffset, yOffset);
|
||||||
|
toast.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче