今天,我试图重写Snapchat的UI,这是一个挑战。我从登录页面开始,但是在操作底部的按钮时遇到了问题,它们下方有一个缝隙。
我很惊讶它不会自然地100%降到最低点,但是有什么办法可以做到这一点?我可以在底部堆栈布局上进行margin-top
,但是有更好的方法吗?
更新:将margin-top
放在底部StackLayout
上只是将高度向上推,但并不能使其下降,似乎是位置锁定在屏幕的96%左右。 / p>
这是我的游乐场代码- https://play.nativescript.org/?template=play-tsc&id=zRSpSr
答案 0 :(得分:1)
您的布局没有问题,默认的按钮波纹/阴影效果占用了该空间。您可以通过在按钮上加上边框来摆脱它。
XML
<Page navigatingTo="onNavigatingTo" class="page" xmlns="http://schemas.nativescript.org/tns.xsd">
<GridLayout>
<StackLayout row="0" verticalAlignment="top" class="header">
<Image horizontalAlignment="center" class="logo" src="http://www.stickpng.com/assets/images/584c4c0b1fc21103bb375ba9.png" />
</StackLayout>
<StackLayout row="1" verticalAlignment="bottom" horizontalAlignment="center"
class="footer">
<Button class="button is-red" text="LOG IN" tap="onSigninButtonTap"></Button>
<Button class="button is-blue" text="SIGN UP" tap="onSigninButtonTap"></Button>
</StackLayout>
</GridLayout>
</Page>
CSS
.button {
width: 100%;
color: #fff;
font-size: 22px;
padding: 50px;
height: 200px;
font-weight: 600;
border-width: 1;
}
.button.is-red {
border-color: #F8455A;
background-color: #F8455A ;
}
.button.is-blue {
border-color: #00ADFC;
background-color: #00ADFC;
}
编辑:对于iPhone X或带有槽口显示的任何设备:
这是安全区域的问题,如果您希望组件延伸到安全区域插图之外,只需在其上设置iosOverflowSafeArea="true"
。
尝试在注册按钮上进行设置,否则,您可能需要在这些设备上相应地调整高度。将nativescript-platform-css用于特定于设备的CSS样式。
答案 1 :(得分:0)
您可以使用onClick={(e) => {
const increase = useAnimationIncrease({ easingName: EasingName.inOutCubic, diff: 10 });
// use increase
}
解决问题,它可以帮助您将子项停靠在屏幕的任何一侧。将DockLayout
停靠在底部的按钮上并将<StackLayout>
停在顶部将为您解决问题。
<Image>
CSS:
<Page navigatingTo="onNavigatingTo" class="page" xmlns="http://schemas.nativescript.org/tns.xsd">
<DockLayout>
<StackLayout dock="bottom" horizontalAlignment="center"
class="footer">
<Button class="button is-red" text="LOG IN!" tap="onSigninButtonTap"></Button>
<Button class="button is-blue" text="SIGN UP" tap="onSigninButtonTap"></Button>
</StackLayout>
<Image dock="top" horizontalAlignment="center" class="logo" src="http://www.stickpng.com/assets/images/584c4c0b1fc21103bb375ba9.png" />
</DockLayout>
</Page>
编辑:iOS安全区域支持可能为您造成了问题,请 看一下NativeScript 5.0中指定的边距
您可以详细了解here.