AppCompat toolbar

This commit is contained in:
vakrilov
2015-08-27 10:37:58 +03:00
parent 91d539dbcb
commit 254e4a55a1
21 changed files with 245662 additions and 232454 deletions

View File

@@ -11,3 +11,7 @@ ScrollView {
font-size: 24;
margin: 6 0;
}
.custom-action-bar {
background-color: lightcoral;
}

View File

@@ -1,5 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Page>
<Page.actionBar>
<ActionBar title="Title" cssClass="custom-action-bar">
<ActionBar.actionItems>
<ActionItem text="hi" />
</ActionBar.actionItems>
</ActionBar>
</Page.actionBar>
<ScrollView>
<StackLayout>
<Button tap="itemTap" text="action bar hidden" tag="action-bar-hidden" />

View File

@@ -6,6 +6,7 @@ import frameModule = require("ui/frame");
import stackLayoutModule = require("ui/layouts/stack-layout");
import textViewModule = require("ui/text-view");
import colorModule = require("color");
import observable = require("data/observable");
export function createPage() {
var generateItems = function () {
@@ -27,7 +28,7 @@ export function createPage() {
}
var clickHandlerFactory = function (nextIndex: number, length: number) {
return function () {
return function () {
if (nextIndex < length) {
tabView.selectedIndex = nextIndex;
}
@@ -35,8 +36,8 @@ export function createPage() {
tabView.items = generateItems();
}
}
}
var clickHandler = clickHandlerFactory(nextIndex, length);
}
var clickHandler = clickHandlerFactory(nextIndex, length);
goToNextTabButton.on(buttonModule.Button.tapEvent, clickHandler);
// Second button
@@ -118,6 +119,14 @@ export function createPage() {
}
var tabView = new tabViewModule.TabView();
tabView.items = generateItems();
tabView.on("selectedIndexChanged", (changedArgs) => {
console.log("tabView.selectedIndexChanged new: " + changedArgs.newIndex + " old: " + changedArgs.oldIndex);
});
tabView.on("propertyChange", (changedArgs) => {
var args = <observable.PropertyChangeData>changedArgs;
console.log("tabView.propertyChange property: " + args.propertyName + " value:" + args.value);
});
var page = new pagesModule.Page();
page.content = tabView;

View File

@@ -1,6 +1,6 @@
import page = require("ui/page");
import layout = require("ui/layouts/grid-layout");
import button = require("ui/button");
import {Button} from "ui/button";
import TKUnit = require("../TKUnit");
import helper = require("./layout-helper");
import view = require("ui/core/view");
@@ -34,14 +34,14 @@ export class MyGridLayout extends layout.GridLayout {
}
}
var tmp: button.Button;
var tmp: Button;
var newPage: page.Page;
var rootLayout: MyGridLayout;
export function setUpModule() {
var pageFactory = function (): page.Page {
newPage = new page.Page;
tmp = new button.Button();
tmp = new Button();
tmp.text = "Loading test";
newPage.content = tmp;
return newPage;
@@ -83,25 +83,27 @@ function colSpan(view: view.View): number {
}
export function test_row_defaultValue() {
TKUnit.assert(tmp !== null);
TKUnit.assertEqual(row(tmp), 0, "'row' property default value should be 0.");
var test = new Button();
TKUnit.assert(test !== null);
TKUnit.assertEqual(row(test), 0, "'row' property default value should be 0.");
}
export function test_rowSpan_defaultValue() {
TKUnit.assert(tmp !== null);
TKUnit.assertEqual(rowSpan(tmp), 1, "'rowSpan' property default value should be 1.");
var test = new Button();
TKUnit.assert(test !== null);
TKUnit.assertEqual(rowSpan(test), 1, "'rowSpan' property default value should be 1.");
}
export function test_column_defaultValue() {
TKUnit.assert(tmp !== null);
TKUnit.assertEqual(col(tmp), 0, "'column' property default value should be 0.");
var test = new Button();
TKUnit.assert(test !== null);
TKUnit.assertEqual(col(test), 0, "'column' property default value should be 0.");
}
export function test_columnSpan_defaultValue() {
TKUnit.assert(tmp !== null);
TKUnit.assertEqual(colSpan(tmp), 1, "'columnSpan' property default value should be 1.");
var test = new Button();
TKUnit.assert(test !== null);
TKUnit.assertEqual(colSpan(test), 1, "'columnSpan' property default value should be 1.");
}
export function test_getRow_shouldThrow_onNullValues() {
@@ -550,10 +552,10 @@ export var test_codesnippets = function () {
// ### Add views to grid layout
// ``` JavaScript
var btn1 = new button.Button();
var btn2 = new button.Button();
var btn3 = new button.Button();
var btn4 = new button.Button();
var btn1 = new Button();
var btn2 = new Button();
var btn3 = new Button();
var btn4 = new Button();
gridLayout.addChild(btn1);
gridLayout.addChild(btn2);
gridLayout.addChild(btn3);

View File

@@ -1,29 +1,11 @@
import tabViewModule = require("ui/tab-view");
export function getNativeTabCount(tabView: tabViewModule.TabView): number {
var actionBar = _getActionBar(tabView);
if (actionBar) {
return actionBar.getTabCount();
}
return tabView.android.getAdapter().getCount();
var pagerAdapter: android.support.v4.view.PagerAdapter = (<any>tabView)._pagerAdapter;
return pagerAdapter.getCount();
}
export function selectNativeTab(tabView: tabViewModule.TabView, index: number): void {
var actionBar = _getActionBar(tabView);
if (actionBar) {
actionBar.setSelectedNavigationItem(index);
}
else {
tabView.android.setCurrentItem(index);
}
}
function _getActionBar(tabView: tabViewModule.TabView) {
if (!tabView.android) {
return undefined;
}
var activity = <android.app.Activity>tabView.android.getContext();
return activity.getActionBar();
}
var viewPager: android.support.v4.view.ViewPager = (<any>tabView)._viewPager;
return viewPager.setCurrentItem(index);
}

View File

@@ -571,7 +571,8 @@ function testLoadedAndUnloadedAreFired_WhenNavigatingAwayAndBack(enablePageCache
function _clickTheFirstButtonInTheListViewNatively(tabView: tabViewModule.TabView) {
if (tabView.android) {
var androidListView = <android.widget.ListView>tabView.android.getChildAt(0);
var viewPager: android.support.v4.view.ViewPager = (<any>tabView)._viewPager;
var androidListView = <android.widget.ListView>viewPager.getChildAt(0);
(<android.widget.Button>androidListView.getChildAt(0)).performClick();
}
else {

View File

@@ -196,7 +196,7 @@ export var test_addView_WillThrow_IfView_IsAlreadyAdded = function () {
views[1]._addView(newButton);
} catch (e) {
thrown = true;
TKUnit.assert(e.message === "View already has a parent.");
TKUnit.assert(e.message.indexOf("View already has a parent.") >= 0);
}
TKUnit.assert(thrown);

View File

@@ -162,13 +162,16 @@ export var test_events_onDetachedAndRemovedFromNativeVisualTree_AreRaised_WhenNa
// this is an event fired from CustomLayoutView when a child is removed from the native visual tree
// therefore this event is fired for StackLayout and Button (which is inside StackLayout).
TKUnit.assertEqual(removeFromNativeVisualTreeListener.receivedEvents.length, 2);
TKUnit.assertEqual(removeFromNativeVisualTreeListener.receivedEvents.length, 3);
TKUnit.assertEqual(removeFromNativeVisualTreeListener.receivedEvents[0].name, "childInLayoutRemovedFromNativeVisualTree");
TKUnit.assertEqual(removeFromNativeVisualTreeListener.receivedEvents[0].sender, views[1]);
TKUnit.assertEqual(removeFromNativeVisualTreeListener.receivedEvents[1].name, "childInLayoutRemovedFromNativeVisualTree");
TKUnit.assertEqual(removeFromNativeVisualTreeListener.receivedEvents[1].sender, views[2]);
TKUnit.assertEqual(removeFromNativeVisualTreeListener.receivedEvents[2].name, "childInLayoutRemovedFromNativeVisualTree");
TKUnit.assertEqual(removeFromNativeVisualTreeListener.receivedEvents[2].sender, views[3]);
trace.removeEventListener(onDetachedListener);
trace.removeEventListener(removeFromNativeVisualTreeListener);
};

View File

@@ -76,7 +76,8 @@ export function test_loadWithOptionsNoXML_CSSIsApplied() {
};
export function test_loadInheritedPageAndResolveFromChild() {
helper.navigateToModuleAndRunTest("./xml-declaration/inherited-page", null, (page) => {
var basePath = "xml-declaration/";
helper.navigateToModuleAndRunTest(basePath + "inherited-page", null, (page) => {
let contentLabel = <Label>page.content;
TKUnit.assertEqual("Inherited and loaded", contentLabel.text);