2016-06-09 97 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