Fix: background properties not respected with remote background image

This commit is contained in:
vakrilov
2016-02-10 11:32:13 +02:00
parent 7dadafe265
commit 5364e395fa
3 changed files with 21 additions and 19 deletions

View File

@ -128,7 +128,7 @@ import actionBarModule = require("ui/action-bar");
// ... // ...
// </Page> // </Page>
//``` //```
//Setting `text` for the navigation button is not supproted in Android. You can use `icon` or `android.systemIcon` to set the image in Android. //Setting `text` for the navigation button is not supported in Android. You can use `icon` or `android.systemIcon` to set the image in Android.
//Setting `ios.systemIcon` for the navigation button is not supported in iOS. //Setting `ios.systemIcon` for the navigation button is not supported in iOS.
// //
// </snippet> // </snippet>

View File

@ -512,7 +512,7 @@ var NativeActivity = {
// We take care of associating them with a Page from our backstack in the onAttachFragment callback. // We take care of associating them with a Page from our backstack in the onAttachFragment callback.
// If there is savedInstanceState and activityInitialized is false we are restarted but process was killed. // If there is savedInstanceState and activityInitialized is false we are restarted but process was killed.
// For now we treat it like first run (e.g. we are not passing savedInstanceState so no fragments are being restored). // For now we treat it like first run (e.g. we are not passing savedInstanceState so no fragments are being restored).
// When we add support for applicatioin save/load state - revise this logic. // When we add support for application save/load state - revise this logic.
var isRestart = !!savedInstanceState && activityInitialized; var isRestart = !!savedInstanceState && activityInitialized;
this.super.onCreate(isRestart ? savedInstanceState : null); this.super.onCreate(isRestart ? savedInstanceState : null);

View File

@ -175,22 +175,22 @@ function onLayoutParamsChanged(data: PropertyChangeData) {
// Negative marginPercent means no marginPercent so native layout won't override margin with this % value. // Negative marginPercent means no marginPercent so native layout won't override margin with this % value.
var layoutParams: definition.CommonLayoutParams = var layoutParams: definition.CommonLayoutParams =
{ {
width: width, width: width,
height: height, height: height,
widthPercent: widthPercent, widthPercent: widthPercent,
heightPercent: heightPercent, heightPercent: heightPercent,
leftMargin: marginLeftValue.isPercent ? 0 : marginLeftValue.value, leftMargin: marginLeftValue.isPercent ? 0 : marginLeftValue.value,
leftMarginPercent: marginLeftValue.isPercent ? marginLeftValue.value / 100 : -1, leftMarginPercent: marginLeftValue.isPercent ? marginLeftValue.value / 100 : -1,
topMargin: marginTopValue.isPercent ? 0 : marginTopValue.value, topMargin: marginTopValue.isPercent ? 0 : marginTopValue.value,
topMarginPercent: marginTopValue.isPercent ? marginTopValue.value / 100 : -1, topMarginPercent: marginTopValue.isPercent ? marginTopValue.value / 100 : -1,
rightMargin: marginRightValue.isPercent ? 0 : marginRightValue.value, rightMargin: marginRightValue.isPercent ? 0 : marginRightValue.value,
rightMarginPercent: marginRightValue.isPercent ? marginRightValue.value / 100 : -1, rightMarginPercent: marginRightValue.isPercent ? marginRightValue.value / 100 : -1,
bottomMargin: marginBottomValue.isPercent ? 0 : marginBottomValue.value, bottomMargin: marginBottomValue.isPercent ? 0 : marginBottomValue.value,
bottomMarginPercent: marginBottomValue.isPercent ? marginBottomValue.value / 100 : -1, bottomMarginPercent: marginBottomValue.isPercent ? marginBottomValue.value / 100 : -1,
horizontalAlignment: style.horizontalAlignment, horizontalAlignment: style.horizontalAlignment,
verticalAlignment: style.verticalAlignment verticalAlignment: style.verticalAlignment
}; };
style._setValue(nativeLayoutParamsProperty, layoutParams); style._setValue(nativeLayoutParamsProperty, layoutParams);
} }
@ -304,6 +304,8 @@ function onBackgroundImagePropertyChanged(data: PropertyChangeData) {
style._setValue(backgroundInternalProperty, currentBackground.withImage(undefined)); style._setValue(backgroundInternalProperty, currentBackground.withImage(undefined));
imageSource.fromUrl(url).then((r) => { imageSource.fromUrl(url).then((r) => {
if (style && style["_url"] === url) { if (style && style["_url"] === url) {
// Get the current background again, as it might have changed while doing the request.
currentBackground = <background.Background>style._getValue(backgroundInternalProperty);
style._setValue(backgroundInternalProperty, currentBackground.withImage(r)); style._setValue(backgroundInternalProperty, currentBackground.withImage(r));
} }
}); });