Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
932626aa
Commit
932626aa
authored
Oct 06, 2015
by
Adam Barth
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1504 from abarth/tab_shadow
ToolBar with a TabBar shouldn't have a shadow
parents
a07cb95e
6cf105fe
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
54 additions
and
70 deletions
+54
-70
stock_home.dart
examples/stocks/lib/stock_home.dart
+16
-15
constants.dart
packages/flutter/lib/src/material/constants.dart
+4
-3
material.dart
packages/flutter/lib/src/widgets/material.dart
+1
-1
tabs.dart
packages/flutter/lib/src/widgets/tabs.dart
+20
-37
tool_bar.dart
packages/flutter/lib/src/widgets/tool_bar.dart
+13
-14
No files found.
examples/stocks/lib/stock_home.dart
View file @
932626aa
...
...
@@ -126,22 +126,23 @@ class StockHomeState extends State<StockHome> {
Widget
buildToolBar
()
{
return
new
ToolBar
(
left:
new
IconButton
(
icon:
"navigation/menu"
,
onPressed:
_showDrawer
level:
0
,
left:
new
IconButton
(
icon:
"navigation/menu"
,
onPressed:
_showDrawer
),
center:
new
Text
(
'Stocks'
),
right:
[
new
IconButton
(
icon:
"action/search"
,
onPressed:
_handleSearchBegin
),
center:
new
Text
(
'Stocks'
),
right:
[
new
IconButton
(
icon:
"action/search"
,
onPressed:
_handleSearchBegin
),
new
IconButton
(
icon:
"navigation/more_vert"
,
onPressed:
_handleMenuShow
)
]
);
new
IconButton
(
icon:
"navigation/more_vert"
,
onPressed:
_handleMenuShow
)
]
);
}
int
selectedTabIndex
=
0
;
...
...
packages/flutter/lib/src/material/constants.dart
View file @
932626aa
...
...
@@ -17,7 +17,8 @@ const double kToolBarHeight = 56.0;
const
double
kMaterialDrawerHeight
=
140.0
;
const
double
kScrollbarSize
=
10.0
;
const
double
kScrollbarFadeDuration
=
250.0
;
const
double
kScrollbarFadeDelay
=
300.0
;
const
Duration
kScrollbarFadeDuration
=
const
Duration
(
milliseconds:
250
)
;
const
Duration
kScrollbarFadeDelay
=
const
Duration
(
milliseconds:
300
)
;
const
double
kFadingEdgeLength
=
12.0
;
const
double
kPressedStateDuration
=
64.0
;
const
double
kPressedStateDuration
=
64.0
;
// units?
const
Duration
kThemeChangeDuration
=
const
Duration
(
milliseconds:
200
);
packages/flutter/lib/src/widgets/material.dart
View file @
932626aa
...
...
@@ -67,7 +67,7 @@ class Material extends StatelessComponent {
style:
Theme
.
of
(
context
).
text
.
body1
,
child:
new
AnimatedContainer
(
curve:
ease
,
duration:
const
Duration
(
milliseconds:
200
)
,
duration:
kThemeChangeDuration
,
decoration:
new
BoxDecoration
(
backgroundColor:
_getBackgroundColor
(
context
),
borderRadius:
_kEdges
[
type
],
...
...
packages/flutter/lib/src/widgets/tabs.dart
View file @
932626aa
...
...
@@ -11,6 +11,7 @@ import 'package:sky/gestures.dart';
import
'package:sky/material.dart'
;
import
'package:sky/painting.dart'
;
import
'package:sky/rendering.dart'
;
import
'package:sky/src/widgets/animated_container.dart'
;
import
'package:sky/src/widgets/basic.dart'
;
import
'package:sky/src/widgets/framework.dart'
;
import
'package:sky/src/widgets/icon.dart'
;
...
...
@@ -51,15 +52,6 @@ class _RenderTabBar extends RenderBox with
}
}
Color
_backgroundColor
;
Color
get
backgroundColor
=>
_backgroundColor
;
void
set
backgroundColor
(
Color
value
)
{
if
(
_backgroundColor
!=
value
)
{
_backgroundColor
=
value
;
markNeedsPaint
();
}
}
Color
_indicatorColor
;
Color
get
indicatorColor
=>
_indicatorColor
;
void
set
indicatorColor
(
Color
value
)
{
...
...
@@ -240,13 +232,6 @@ class _RenderTabBar extends RenderBox with
}
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
if
(
backgroundColor
!=
null
)
{
double
width
=
layoutWidths
!=
null
?
layoutWidths
.
reduce
((
sum
,
width
)
=>
sum
+
width
)
:
size
.
width
;
Rect
rect
=
offset
&
new
Size
(
width
,
size
.
height
);
context
.
canvas
.
drawRect
(
rect
,
new
Paint
()..
color
=
backgroundColor
);
}
int
index
=
0
;
RenderBox
child
=
firstChild
;
while
(
child
!=
null
)
{
...
...
@@ -264,7 +249,6 @@ class _TabBarWrapper extends MultiChildRenderObjectWidget {
Key
key
,
List
<
Widget
>
children
,
this
.
selectedIndex
,
this
.
backgroundColor
,
this
.
indicatorColor
,
this
.
indicatorRect
,
this
.
textAndIcons
,
...
...
@@ -273,7 +257,6 @@ class _TabBarWrapper extends MultiChildRenderObjectWidget {
})
:
super
(
key:
key
,
children:
children
);
final
int
selectedIndex
;
final
Color
backgroundColor
;
final
Color
indicatorColor
;
final
Rect
indicatorRect
;
final
bool
textAndIcons
;
...
...
@@ -288,7 +271,6 @@ class _TabBarWrapper extends MultiChildRenderObjectWidget {
void
updateRenderObject
(
_RenderTabBar
renderObject
,
_TabBarWrapper
oldWidget
)
{
renderObject
.
selectedIndex
=
selectedIndex
;
renderObject
.
backgroundColor
=
backgroundColor
;
renderObject
.
indicatorColor
=
indicatorColor
;
renderObject
.
indicatorRect
=
indicatorRect
;
renderObject
.
textAndIcons
=
textAndIcons
;
...
...
@@ -537,7 +519,7 @@ class _TabBarState extends ScrollableState<TabBar> {
textAndIcons
=
true
;
}
Widget
tabBar
=
new
IconTheme
(
Widget
content
=
new
IconTheme
(
data:
new
IconThemeData
(
color:
iconThemeColor
),
child:
new
DefaultTextStyle
(
style:
textStyle
,
...
...
@@ -548,7 +530,6 @@ class _TabBarState extends ScrollableState<TabBar> {
return
new
_TabBarWrapper
(
children:
tabs
,
selectedIndex:
config
.
selectedIndex
,
backgroundColor:
backgroundColor
,
indicatorColor:
indicatorColor
,
indicatorRect:
_indicatorRect
.
value
,
textAndIcons:
textAndIcons
,
...
...
@@ -560,16 +541,23 @@ class _TabBarState extends ScrollableState<TabBar> {
)
);
if
(!
config
.
isScrollable
)
return
tabBar
;
return
new
SizeObserver
(
callback:
_handleViewportSizeChanged
,
child:
new
Viewport
(
scrollDirection:
ScrollDirection
.
horizontal
,
scrollOffset:
new
Offset
(
scrollOffset
,
0.0
),
child:
tabBar
)
if
(
config
.
isScrollable
)
{
content
=
new
SizeObserver
(
callback:
_handleViewportSizeChanged
,
child:
new
Viewport
(
scrollDirection:
ScrollDirection
.
horizontal
,
scrollOffset:
new
Offset
(
scrollOffset
,
0.0
),
child:
content
)
);
}
return
new
AnimatedContainer
(
decoration:
new
BoxDecoration
(
backgroundColor:
backgroundColor
),
duration:
kThemeChangeDuration
,
child:
content
);
}
}
...
...
@@ -601,18 +589,13 @@ class TabNavigator extends StatelessComponent {
final
TabSelectedIndexChanged
onChanged
;
final
bool
isScrollable
;
void
_handleSelectedIndexChanged
(
int
tabIndex
)
{
if
(
onChanged
!=
null
)
onChanged
(
tabIndex
);
}
Widget
build
(
BuildContext
context
)
{
assert
(
views
!=
null
&&
views
.
isNotEmpty
);
assert
(
selectedIndex
>=
0
&&
selectedIndex
<
views
.
length
);
return
new
Column
([
new
TabBar
(
labels:
views
.
map
((
view
)
=>
view
.
label
),
onChanged:
_handleSelectedIndex
Changed
,
onChanged:
on
Changed
,
selectedIndex:
selectedIndex
,
isScrollable:
isScrollable
),
...
...
packages/flutter/lib/src/widgets/tool_bar.dart
View file @
932626aa
...
...
@@ -4,35 +4,36 @@
import
'package:sky/material.dart'
;
import
'package:sky/painting.dart'
;
import
'package:sky/src/widgets/animated_container.dart'
;
import
'package:sky/src/widgets/basic.dart'
;
import
'package:sky/src/widgets/framework.dart'
;
import
'package:sky/src/widgets/icon.dart'
;
import
'package:sky/src/widgets/theme.dart'
;
import
'package:sky/src/rendering/flex.dart'
;
class
ToolBar
extends
StatelessComponent
{
ToolBar
({
Key
key
,
this
.
left
,
this
.
center
,
this
.
right
,
this
.
level
:
2
,
this
.
backgroundColor
})
:
super
(
key:
key
);
final
Widget
left
;
final
Widget
center
;
final
List
<
Widget
>
right
;
final
int
level
;
final
Color
backgroundColor
;
Widget
build
(
BuildContext
context
)
{
Color
toolbarC
olor
=
backgroundColor
;
Color
c
olor
=
backgroundColor
;
IconThemeData
iconThemeData
;
TextStyle
centerStyle
=
Typography
.
white
.
title
;
TextStyle
sideStyle
=
Typography
.
white
.
body1
;
if
(
toolbarC
olor
==
null
)
{
if
(
c
olor
==
null
)
{
ThemeData
themeData
=
Theme
.
of
(
context
);
toolbarC
olor
=
themeData
.
primaryColor
;
c
olor
=
themeData
.
primaryColor
;
if
(
themeData
.
primaryColorBrightness
==
ThemeBrightness
.
light
)
{
centerStyle
=
Typography
.
black
.
title
;
sideStyle
=
Typography
.
black
.
body2
;
...
...
@@ -44,11 +45,9 @@ class ToolBar extends StatelessComponent {
List
<
Widget
>
children
=
new
List
<
Widget
>();
// left children
if
(
left
!=
null
)
children
.
add
(
left
);
// center children (left-aligned, but takes all remaining space)
children
.
add
(
new
Flexible
(
child:
new
Padding
(
...
...
@@ -58,11 +57,16 @@ class ToolBar extends StatelessComponent {
)
);
// right children
if
(
right
!=
null
)
children
.
addAll
(
right
);
Widget
content
=
new
Container
(
Widget
content
=
new
AnimatedContainer
(
duration:
kThemeChangeDuration
,
padding:
new
EdgeDims
.
symmetric
(
horizontal:
8.0
),
decoration:
new
BoxDecoration
(
backgroundColor:
color
,
boxShadow:
level
==
0
?
null
:
shadows
[
2
]
),
child:
new
DefaultTextStyle
(
style:
sideStyle
,
child:
new
Column
([
...
...
@@ -73,11 +77,6 @@ class ToolBar extends StatelessComponent {
],
justifyContent:
FlexJustifyContent
.
end
)
),
padding:
new
EdgeDims
.
symmetric
(
horizontal:
8.0
),
decoration:
new
BoxDecoration
(
backgroundColor:
toolbarColor
,
boxShadow:
shadows
[
2
]
)
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment