2016-06-09 184 views
0

我刚刚开始使用NativeScript并遇到了障碍。NativeScript浮动按钮

我有一个AppBuilder/NativeScript项目(仅限iOS现在),我想实现一个浮动操作按钮。我看到大量的其中FAB位于一个ListView上述实施例不过我的情况不同的是:

  • 我有3个中继器(显示不相关的数据)。
  • 每个中继器可能会或可能不会在网页上显示(如果没有要显示的数据,我隐藏它)
  • 我想放在FAB右下角,无论什么样的内容是
  • 整个页面被包裹在一个滚动型

我使用nativescript-floatingactionbutton试过,但我不能使用此模块安装的编译。我一直在收到“无法构建项目,因为module nativescript-floatingactionbutton包含不安全的代码,请移除该模块并重试。”

我也尝试过在页面级别的AbsoluteLayout,但它似乎布局覆盖了页面的其余部分,我什至不能看到内容,只是FAB。

这里是标记

<Page id="MainPage" xmlns="http://schema.nativescript.org/tns.xsd" actionBarHidden="true" loaded="pageLoaded" xmlns:drawer="nativescript-telerik-ui/sidedrawer" xmlns:sharedDrawers="widgets/drawers"> 
 

 
    <drawer:RadSideDrawer id="mainDrawer"> 
 

 
    <drawer:RadSideDrawer.mainContent> 
 
     <ScrollView id="wrapper" opacity="0"> 
 
      <DockLayout stretchLastChild="false"> 
 
      <GridLayout id="mainHeader" cssClass="header" dock="top" columns="50, *, 50"> 
 
       <Label class="icomoon-icon" text="&#xe6d0;" row="0" col="0" horizontalAlignment="center" tap="openDrawer" fontSize="18" /> 
 
       <Label horizontalAlignment="center" text="{{ pageTitle }}" row="0" col="1" /> 
 
       <Label class="icomoon-icon" text="&#xe610;" row="0" col="2" horizontalAlignment="center" tap="notifications" fontSize="18" /> 
 
      </GridLayout> 
 

 
      <GridLayout cssClass="main" rows="auto, *" > 
 
       <StackLayout row="0"> 
 
       <StackLayout cssClass="{{arr.length ? '' : 'hidden' }}"> 
 
        <label cssClass="section-title" text="{{strings.activeLoans}}"></label> 
 
        <Repeater items="{{ arr }}" > 
 
        <Repeater.itemTemplate cssClass="item"> 
 
         ... 
 
        </Repeater.itemTemplate> 
 
        </Repeater> 
 
       </StackLayout> 
 

 
       <StackLayout cssClass="{{arr2.length ? '' : 'hidden' }}"> 
 
        <label cssClass="section-title" text="{{strings.history}}" marginTop="20" /> 
 

 
        <Repeater items="{{ arr2 }}"> 
 
        <Repeater.itemTemplate> 
 
         ... 
 
        </Repeater.itemTemplate> 
 
        </Repeater> 
 
       </StackLayout> 
 

 
       <StackLayout cssClass="{{arr3.length ? '' : 'hidden' }}"> 
 
        <label cssClass="section-title" text="{{strings.data}}" marginTop="20" /> 
 
        <Image src="~/images/pic.jpg" /> 
 

 
        <Repeater items="{{ arr3 }}"> 
 
        <Repeater.itemTemplate> 
 
         ... 
 
        </Repeater.itemTemplate> 
 
        </Repeater> 
 
       </StackLayout> 
 
       </StackLayout> 
 
      </GridLayout> 
 
      </DockLayout> 
 
     
 
     </ScrollView> 
 
    </drawer:RadSideDrawer.mainContent> 
 

 
    <drawer:SideDrawer.drawerContent> 
 
     <sharedDrawers:mainDrawer /> 
 
    </drawer:SideDrawer.drawerContent> 
 
    </drawer:RadSideDrawer> 
 

 
    <!--<AbsoluteLayout cssClass="fabContainer"> 
 
    <Image src="res://fab_add" tap="newLoan" cssClass="fab" /> 
 
    </AbsoluteLayout>--> 
 
</Page>

我已经截断,改变了一些不相关的代码。

任何帮助,非常感谢。

谢谢。

+1

嗨@dpdragnev - 我实际上创建了FAB插件,并不是它包含不安全的代码,但AppBuilder需要插件作者白色由Telerik列出,这已经出现了,我已经被列入白名单,但系统并没有更新。我被告知下一个AppBuilder发行版我将被白名单列为作者,所以我的插件应该很快工作(想想这个月)至于定位,你应该在这里添加你的标记,这样每个人都可以了解你想要的东西。您可能需要为此使用'AbsoluteLayout',但Grid和Dock也可能工作。 –

+0

嗨布拉德,感谢您的回应。你的插件正是我所需要的,但AppBuilder出于某种原因不喜欢它。我今天运行的AppBuilder有一个更新,但我仍然收到此消息。你应该跟进他们,以确保他们已经同时列出你。 – dpdragnev

+0

我将用标记编辑我的答案 – dpdragnev

回答

2

АsBrad Martin说,这个插件不能在Telerik Platform内部构建,因为并非所有的维护者都是白名单。更确切地说,当在Telerik Platform中启动一个包含pod文件的插件的iOS版本时,服务会检查其维护者。由于pod文件可以包含后期构建脚本,因此Telerik Platform目前通过保留列出白名单的维护人员列表来标记插件为安全。

这个插件有5个维护者 - 布拉德马丁只是其中之一。 Brad的电子邮件是白名单,但'gabrielbiga'和'lazaromenezes'尚未列入白名单。 @Brad Martin-请让我们知道我们是否应该将这些用户的电子邮件列入白名单? 另一种方法是用框架替换pod文件。

最后一件事,Telerik Platform版本Telerik Platform团队将致力于改进对包含pod的插件的支持。他们可能会删除沙箱中的“白名单”方法,但我们不能评论任何细节。

+0

感谢您的澄清。看来,我将不得不寻找另一种实现浮动按钮的方式。你有什么建议吗? – dpdragnev

+0

作为临时解决方案,我建议您使用'GridLayout'和普通的NativeScript按钮。您可以使用'border-radius'或'clip-path'将Button的样式设置为'Floating Button',并为其添加动画。我附上了我的示例项目的链接,您可以在其中查看我的建议https://github.com/tsonevn/FloatingButton.git –

+0

谢谢@NikolayTsonev – dpdragnev