mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Enable recycling of nativeView 2 (#4467)
* enable recycling of nativeView * backgroundInternal is reset if setting new value leads to background.isEmpty() == true. * android background.getDefault always return copy of the background. Now all controls that mutate the background can be reset to initial state (e.g. Button & ActionBar) passing resources to copied background so it respect density. fix properties initNativeView * reset padding when backgroundInternal is reset. * Fix text reset Fix padding reset * fix tsc errors * fix ugly text rendering. * Add unit tests for recycling native views Fix several issues that came from the above tests Fix maxLength property missing a converter callback Remove old files * Remove old files * Revert backgroundInternal setter * change the order of tests so that appium can work again * Remove suggestion on every TextView & TextField init (strangely it is enabled after view is recycled....) * Fix function to get parent layout if specified * Button stateListAnimator restored when button is recycled zIndex defaultValue is now undefined instead of NaN * revert zIndex.setNative to always clear stateListAnimator because it was breaking one UI test (setting value=0 was returning the previous stateListAnimator) * fix search-bar backgound-color recycling * Fix alignments setters * Fix imageView recycling Fix button recycling Fix edit-text recycling resetNativeView is called only if recycleNativeView flag is true * Fix incorrect merge * Fix text-view & text-field textTransform * Fix EditText text reset * Fix runtime crash on ARM emulator API 21 * Fix text-base minHeight. maxHeight reset Fix reset of isUserInteractionEnabled
This commit is contained in:
committed by
GitHub
parent
b1432679e6
commit
23757e5dfc
@@ -21,6 +21,12 @@ export class TabViewTest extends testModule.UITest<tabViewModule.TabView> {
|
||||
return tabView;
|
||||
}
|
||||
|
||||
public test_recycling() {
|
||||
const setters = new Map<string, Array<any>>();
|
||||
setters.set('items', this._createItems(3));
|
||||
helper.nativeView_recycling_test(() => new tabViewModule.TabView(), null, null, setters);
|
||||
}
|
||||
|
||||
_createItems(count: number): Array<tabViewModule.TabViewItem> {
|
||||
var items = new Array<tabViewModule.TabViewItem>();
|
||||
for (var i = 0; i < count; i++) {
|
||||
@@ -292,9 +298,9 @@ export class TabViewTest extends testModule.UITest<tabViewModule.TabView> {
|
||||
// return `${font.typeface} ${font.size}`;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
let assertFontsAreEqual = (actual: any, expected: any, message?: string) => {
|
||||
if (this.testView.ios){
|
||||
if (this.testView.ios) {
|
||||
TKUnit.assertEqual(actual, expected, message);
|
||||
}
|
||||
else {
|
||||
@@ -315,17 +321,17 @@ export class TabViewTest extends testModule.UITest<tabViewModule.TabView> {
|
||||
this.testView.style.font = "20 Pacifico";
|
||||
nativeFont = tabViewTestsNative.getNativeFont(this.testView);
|
||||
//console.log(`>>>>>>>>>>>>> nativeFont: ${fontToString(nativeFont)}`);
|
||||
|
||||
|
||||
//console.log(`>>>>>>>>>>>>> CREATE 3 ITEMS`);
|
||||
this.testView.items = this._createItems(2);
|
||||
assertFontsAreEqual(tabViewTestsNative.getNativeFont(this.testView), nativeFont, "Font must be 20 Pacifico after rebinding items.");
|
||||
//console.log(`>>>>>>>>>>>>> nativeFont: ${fontToString(nativeFont)}`);
|
||||
|
||||
|
||||
//console.log(`>>>>>>>>>>>>> MONOSPACE;`);
|
||||
this.testView.style.font = "bold 12 monospace";
|
||||
nativeFont = tabViewTestsNative.getNativeFont(this.testView);
|
||||
//console.log(`>>>>>>>>>>>>> nativeFont: ${fontToString(nativeFont)}`);
|
||||
|
||||
|
||||
//console.log(`>>>>>>>>>>>>> CREATE 3 ITEMS`);
|
||||
this.testView.items = this._createItems(3);
|
||||
assertFontsAreEqual(tabViewTestsNative.getNativeFont(this.testView), nativeFont, "Font must be bold 12 monospace after rebinding items.");
|
||||
|
||||
Reference in New Issue
Block a user