我正在尝试使用CupertinoSliverNavigationBar
,实际上它很棒,但是由于某些原因,我无法将尾部放在导航栏的末尾。我抬头看,我(猜测,我)发现里面有Padding
这是我的代码
new CupertinoPageScaffold(
child: new CustomScrollView(
slivers: <Widget>[
new CupertinoSliverNavigationBar(
largeTitle: new Text('Tasks'),
trailing: new CupertinoButton(
child: new Icon(AdditionalCupertinoIcons.compose, size: 32.0),
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return new CupertinoAlertDialog();
});
},
padding: EdgeInsets.all(0.0),
),
)
],
),
),
答案 0 :(得分:1)
遗憾的是,不能做。
查看this line of source code,您会发现他们最后使用Padding
,即_kNavBarEdgePadding
,即16.0
。与start
相同。
这意味着使用CupertinoSliverNavigationBar
时将无法删除该Padding
,因为没有访问点可以更改它。为此,您将必须创建自己的自己的窗口小部件。
_CupertinoPersistentNavigationBar
widget包含Padding
,CupertinoSliverNavigationBar
使用[x.replace("$","\:") for x in str1.replace("\:","$").split(":")]
,seen here也使用here完成。
答案 1 :(得分:0)
有一种在屏幕上移动小部件的简单方法:
Widget _adjustNavigationBarButtonPosition(Widget button, double x) {
if (button == null) return null;
return Container(
transform: Matrix4.translationValues(x, 0, 0),
child: button,
);
}
使用此方法包装CupertinoButton并指定一个偏移量。要完全删除填充,偏移量应为16.0
。
答案 2 :(得分:0)
您可以使用Matrix4.translationValues在容器中移动一个孩子。在您的情况下,x <space>
应该为正数才能将尾随向右移动。
Matrix4.translationValues(12, 0, 0),