ion-content中存在ion-list,在ion-list外固定其他控件位置不滚动

重点
<ion-content scroll="false">
然后在 <ion-list> 外包裹   <ion-scroll style="height: 100%;">, 此处的height必须有,不然滚动尺寸有问题。
单此时如果底部有tabs,会发现list最后一行被tabs遮住了,一个偷懒的方法就是启用infinite-scroll,把最后一行进行填充,就是增加 <ion-infinite-scroll on-infinite="loadMore()"></ion-infinite-scroll>。
这时list拉到底会有个loading的icon出现,为了不让这个icon出现,可以设置ion-infinite-scroll的spinner="xxx"任意名字,但这样会js出异常,报找不到对应的spinner,那么好点一点的方法是实现on-infinite="loadMore()",在loadMore()中直接让infinite scroll结束

$scope.loadMore = function(){
    $scope.$broadcast('scroll.infiniteScrollComplete');
};


<ion-view view-title="Chats">
    <ion-content scroll="false">
        <div>
            2015-11-11
        </div>
        <div class="button-bar">
            <a class="button">First</a>
            <a class="button">Second</a>
            <a class="button">Third</a>
        </div>
        <ion-scroll style="height: 100%;">
            <ion-refresher on-refresh="doRefresh()"></ion-refresher>
            <ion-list>
                <ion-item class="item-remove-animate item-avatar item-icon-right" ng-repeat="chat in chats"
                          type="item-text-wrap" href="#/tab/chats/{{chat.id}}">
                    <img ng-src="{{chat.face}}">

                    <h2>{{chat.name}}</h2>

                    <p>{{chat.lastText}}</p>
                    <i class="icon ion-chevron-right icon-accessory"></i>

                    <ion-option-button class="button-assertive" ng-click="remove(chat)">
                        Delete
                    </ion-option-button>
                </ion-item>
            </ion-list>
            <ion-infinite-scroll on-infinite="loadMore()"></ion-infinite-scroll>
        </ion-scroll>
    </ion-content>
</ion-view>


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Ionic侧边栏是一个非常实用的组件,可以让用户轻松地在不同的页面之间进行导航。ion-side-menus是Ionic用于创建侧边栏的指令,它提供了多个选项来控制侧边栏的观和功能。 要使用ion-side-menus指令,需要在HTML创建一个包含ion-side-menus指令的容器元素。然后,在容器定义一个ion-side-menu-content指令,用于指定主要内容区域。在主要内容区域,可以使用ion-nav-view指令来显示不同的页面。 在侧边栏,可以使用ion-side-menu指令来定义侧边栏的内容。可以在侧边栏包含任意数量的元素,包括列表、按钮和链接等。 当用户在侧边栏选择一个项目时,可以使用ion-tap指令来处理点击事件。ion-tap指令可以与ng-click指令一起使用,用于在视图触发特定的函数或操作。 下面是一个示例代码,展示了如何使用ion-side-menus和ion-tap指令来创建一个具有侧边栏导航的Ionic应用: ``` <ion-side-menus> <!-- 左侧侧边栏 --> <ion-side-menu side="left"> <ion-header-bar class="bar-dark"> <h1 class="title">菜单</h1> </ion-header-bar> <ion-content> <ion-list> <ion-item ng-click="openPage('home')">首页</ion-item> <ion-item ng-click="openPage('about')">关于</ion-item> <ion-item ng-click="openPage('contact')">联系我们</ion-item> </ion-list> </ion-content> </ion-side-menu> <!-- 主要内容区域 --> <ion-side-menu-content> <ion-header-bar class="bar-dark"> <button class="button button-icon ion-navicon" ng-click="toggleLeft()"> </button> <h1 class="title">我的应用</h1> </ion-header-bar> <ion-nav-view></ion-nav-view> </ion-side-menu-content> </ion-side-menus> ``` 在上面的代码,我们创建了一个包含ion-side-menus指令的容器元素。在容器,我们定义了一个包含ion-side-menu指令的左侧侧边栏,并在其添加了一些项目。在主要内容区域,我们使用ion-nav-view指令来显示不同的页面,并使用ion-header-bar指令来添加导航栏。在导航栏,我们添加了一个按钮,用于打开左侧侧边栏,并使用ion-tap指令来处理点击事件。 最后,我们还需要在控制器定义一个openPage函数,用于在点击侧边栏的项目时导航到不同的页面。 ``` .controller('MyCtrl', function($scope, $ionicSideMenuDelegate, $state) { $scope.openPage = function(page) { $ionicSideMenuDelegate.toggleLeft(false); $state.go(page); }; $scope.toggleLeft = function() { $ionicSideMenuDelegate.toggleLeft(); }; }); ``` 在上面的代码,我们定义了一个openPage函数,用于在点击侧边栏的项目时导航到不同的页面。我们还定义了一个toggleLeft函数,用于打开或关闭左侧侧边栏。在openPage函数,我们通过$state.go函数来导航到不同的页面,并在导航完成后关闭左侧侧边栏。在toggleLeft函数,我们使用$ionicSideMenuDelegate.toggleLeft函数来打开或关闭左侧侧边栏。 总之,使用ion-side-menus和ion-tap指令可以轻松创建具有侧边栏导航的Ionic应用,并实现侧边栏项目的点击事件处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值