离子可滚动标签

Posted

技术标签:

【中文标题】离子可滚动标签【英文标题】:Ionic scrollable tabs 【发布时间】:2014-09-27 14:30:39 【问题描述】:

您好,在我自己制作一些东西之前,我想知道 ionic 是否有类似 scrollable tabs 的东西。我在使用 ionic 制作的 fitrpg 应用程序中查看并看到它,但我不知道它是否是自定义的。我将把它用于像 fitrpg 这样的列表,并且会有几个部分对列表进行不同的排序,比如最高评价、最新等。我还看到了 ionics slide box 并认为如果我做了一个我可以用它来实现它花哨的标题我自己。但我想我会知道是否有人为此制作了一个包,或者如果我必须自己做的话会有任何有用的建议。这里还有一张来自 fitrpg 的图片,展示了我想要实现的目标。我需要像 All Active 和 Completed 这样的标签,您可以在它们之间滑动。

【问题讨论】:

【参考方案1】:

这个库似乎可以满足您的需求:

https://github.com/saravmajestic/ionic/tree/master/tabbedSlideBox

【讨论】:

我查看了那个插件,但有一个主要错误,目前不显示动态数据。看到这个问题github.com/saravmajestic/ionic/issues/26【参考方案2】:

它必须具有功能并且已经在社区中请求。我也在等待可滚动的标签,似乎正在考虑中!可能会在未来即将发布的版本中提供。请参阅Github issue 和Trello。

【讨论】:

【参考方案3】:

我使用 html 和 css 来使这些选项卡可滚动。我想提一下,可滚动标签功能不可用。然而,我想出的下面的解决方案对我来说很神奇。

您可以继续配置包含无限数据的 tabs 数组。

注意:在开发过程中您将无法在浏览器上滚动,但是一旦您安装了应用程序,它就可以在滑动时使用...也可以在 ionic 视图中使用

该部分的 HTML 代码:

<ion-header-bar class="bar bar-header row" align-title="center">
               <!-- here goes your header code -->
</ion-header>
<ion-nav-view>
    <ion-content>
              <!-- here ur templates will be injected -->
    </ion-content>   
</ion-nav-view>

<ion-footer-bar>
   <div class="auFooter">
              <div class="auFooterItem" ng-repeat="tab in tabs" id="tabtab.id" ng-class="'IAmActive':tab.id===activeTabId" ui-sref="tab.url" ng-click="change_tab(tab.id)">
                   <p>
                            <img src="tab.imageurl">
                    </p>
                    <p>
                       tab.title
                    </p>
              </div>
          </div>

</ion-footer-bar>

相同的 CSS 注意:我将 SASS 用于我的 css 结构:

.pad0
    padding: 0 !important;

.padTop0
    padding-top: 0 !important;

.padBottom0
    padding-bottom: 0 !important;

.padLeft0
    padding-left: 0 !important;

.padRight0
    padding-right: 0 !important;




ion-footer-bar
    @extend .pad0;
    .auFooter
        height: inherit;
        background-color: #000F22;
        padding: 0;
        width: 100%;
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        flex-flow:row;
        position:absolute;
        left: 0;
        overflow-x: scroll;
        .IAmActive
                background-color: #E68C00 !important;
        
        .auFooterItem
           padding: 10px;
           cursor: pointer;
           color:white;
           overflow: auto;
           font-size:22px;
           background-color: #000F22;//crimson;
           border:1px solid #000710;
           flex:1;
           -webkit-flex:1;
           text-align:center;
           min-width:200px;
            p
                margin-bottom: 0px;
                font-size: 16px;
                img
                    height: 34px;
                
            
        
        &::-webkit-scrollbar
            display: none;
        
    



.bar
        height: 60px;   

.bar-footer
        height: 90px;

用于更改标签的Javascript:

$scope.activeTabId='tab1';
$scope.change_tab=function(tabid)

            $('#tab1').removeClass("IAmActive");
             if($scope.activeTabId!==tabid)
                $scope.activeTabId=tabid;
             




 $scope.initTabs=function()
                $('#tab1').addClass("IAmActive");
  

 setTimeout($scope.initTabs,500);

标签的 json 示例

$scope.tabs = [
                    
                        "id":1,
                         "title" : 'Gallery',
                         "iconoff":'ion-ios-photos',
                         "iconon":'ion-ios-photos',
                         "url":'home',
                         "tabname":"tab-dash",
                         "imageurl":"img/icons/gallery.png"
                    ,
                    
                        "id":2,
                         "title" : 'Customer Enquiry Form',
                         "iconoff":'ion-android-contact',
                         "iconon":'ion-android-contact',
                         "url":'cenquiry',
                         "tabname":'tab-chats',
                         "imageurl":"img/icons/customer_enquiry.png"
                    ,
                    
                        "id":3,
                         "title" : 'Top 5',
                         "iconoff":'ion-android-star-half',
                         "iconon":'ion-android-star-half',
                         "url":'top5',
                         "tabname":'tab-top5',
                         "imageurl":"img/icons/top-5.png"
                    
];

【讨论】:

以上是关于离子可滚动标签的主要内容,如果未能解决你的问题,请参考以下文章

PyQt 4:使标签可滚动

如何将标签变成可滚动标签?

如何使用滚动视图制作可滚动标签?

我们可以在 xamarin.forms 中制作可滚动的底部标签页吗

离子标签不会转到下一页

如何制作具有固定离子卡标题和可滚动离子卡内容的离子卡?