Native Scrolling: Android Testers Wanted


If i have an ion-option-button, then i can drag that across and then drag down I can use the refresher.



After taking the nightly build 1410, i could not scroll ion-content in my app. Scrolling works when overflow-scroll is removed from ion-content. Both overflow scroll and js scroll works with 1.0.0 release. Is anybody else facing this issue? I just have overflow-scroll='true' in my ion-content. Do I need to add anything else?


We got this too when we just tried it out in 1.0.1. Users report they could scroll once, then it’s stuck indefinitely. I haven’t tried it with overflow-scroll, I just set $ionicConfigProvider.scrolling.jsScrolling(false);.

This was reported on the following devices so far:

  • Huawei y550, Android Kitkat (unknown minor)
  • Huawei G630, Android 4.3 (unknown patch)
  • Acer E380, Android 4.4 (unknown patch)
  • Galaxy S5 Mini, Android 4.4.2

Confirmed working devices so far:

  • Galaxy S4, Android 5.0.1


Hack posted here works well, but would love to see this fix in ionic code.


I have to admit, I haven’t read through all these replies, but if I understand correctly, native scrolling in Android has been broken in the last 2 Ionic releases? That’s scary.

Ionic is a (very large) black box to me and I have no desire to open it and peek inside. I also cannot use the js-based scrolling because of performance issues on older devices and it doesn’t work at all with selenium-based testing.

I was hoping that danger of a a misbehaving scroll view would be eliminated by using the native view, but from scanning this and and the linked github issue, it seems that is not the case.

Is there some good way to communicate to developers which builds have the problems and should be avoided?


Performances are way better with native scrolling (samsung S6, android 5.1.1). But (vertical) scrollbar has disappeared. This article says it’s possible using css. Does anybody know how ?


I am using ionic v 1.0.1. I placed overflow-scroll=”true” in ion-content which contains ion-list of cards (with ng-repeat). The scroll performance is really better compared to when JS scrolling is used. It works pretty well in Android 4.4.2 (when without pull to refresh). But in the logn forms, the keyboard hides the inputs.
With pull to refresh, the content is sometimes zoomed, when I drag the ion-content down.

In Android 4.2.2, there is another problem. The scroll.resize doesn’t resize the content (after infinite scroll).

For now, Im using JS scroll which is slow but at least, infinite scroll works. I wish to see infinite scroll, PTR working well with native scrolling soon in the low-end devices too.


Are you testing this using Crosswalk or the native Webview?


I’ve been testing it out on a Galaxy s6, and the difference is great… I have a long list (200+) of images that was very jittery with js scrolling… with native, it’s buttery smooth! I haven’t had any issues with the refresh or infinite scrolling yet. Good job!


Try this in css.
This is a ugly version i just find.
now should make a more beautifull version and it should disapear when it stop scrolling

   ::-webkit-scrollbar {
	   -webkit-appearance: none;
	   width: 7px;
::-webkit-scrollbar-thumb {
	border-radius: 4px;
	background-color: rgba(0,0,0,.5);
	-webkit-box-shadow: 0 0 1px rgba(255,255,255,.5);


::-webkit-scrollbar {
	width: 12px;
::-webkit-scrollbar-thumb {

	border: 4px solid rgba(0, 0, 0, 0);
	background-clip: padding-box;
	-webkit-border-radius: 7px;
	background-color: rgba(0, 0, 0, 0.15);
	-webkit-box-shadow: inset -1px -1px 0px rgba(0, 0, 0, 0.05), inset 1px 1px 0px rgba(0, 0, 0, 0.05);
::-webkit-scrollbar-button {
	width: 0;
	height: 0;
	display: none;
::-webkit-scrollbar-corner {
	background-color: transparent;

But it make a margin in the content at the right.

Any idea how to show/hide onscroll and scrollend?


Something i don’t understand. Overflow scroll have alway worked on my iPad and alway work.
iPad 2 and the latest version 8.3 i think.


i can confirm you that native scrolling with this.CordovaView.DisableBouncyScrolling = false; in MainPage.xaml.cs works like a charm in wp8 with this.CordovaView.DisableBouncyScrolling = true; both of options are very slow.
It’s faster than my app on android rotfl…


Is anyone else noticing a hesitation when dragging to open a side menu when native scrolling is enabled? I am testing with Ionic 1.1.0 on a device with Android 5.0.2. Any ideas how to fix?

Something else I noticed is that once I open and close the side menu, a scroll bar appears. That’s no big deal, I just thought it was odd.


Native scrolling is very performant on my Moto E 2nd Gen and JS scrolling lags a lot.


My Native Scroller is not working …
Below are the app.js code where I have put the code at .config () if (ionic.Platform.isAndroid()){ $ionicConfigProvider.scrolling.jsScrolling(false);} . Please help me out.

angular.module(‘starter’, [‘ionic’, ‘starter.controllers’, ‘’])

.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {

if (window.StatusBar) {
  // org.apache.cordova.statusbar required


.config(function($stateProvider, $urlRouterProvider,$ionicConfigProvider) {

// Ionic uses AngularUI Router which uses the concept of states
// Learn more here:
// Set up the various states which the app can be in.
// Each state’s controller can be found in controllers.js
if (ionic.Platform.isAndroid()){ $ionicConfigProvider.scrolling.jsScrolling(false);}


// setup an abstract state for the tabs directive
.state(‘tab’, {
url: ‘/tab’,
abstract: true,
templateUrl: ‘templates/tabs.html’
//templateUrl: ‘index.html’

// Each tab has its own nav history stack:

.state(‘tab.dash’, {
url: ‘/dash’,
views: {
‘tab-dash’: {
//templateUrl: ‘templates/tab-dash.html’,
templateUrl: ‘templates/descover.html’,
controller: ‘DashCtrl’

.state(‘tab.chats’, {
url: ‘/chats’,
views: {
‘tab-chats’: {
templateUrl: ‘templates/tab-chats.html’,
controller: ‘ChatsCtrl’
.state(‘’, {
url: ‘/chats/:chatId’,
views: {
‘tab-chats’: {
templateUrl: ‘templates/chat-detail.html’,
controller: ‘ChatDetailCtrl’

.state(‘tab.created’, {
url: ‘/created’,
views: {
‘tab-created’: {
templateUrl: ‘templates/tab-account.html’,
//templateUrl: ‘templates/created.html’,
controller: ‘AccountCtrl’

.state(‘tab.account’, {
url: ‘/account’,
views: {
‘tab-account’: {
//templateUrl: ‘templates/tab-account.html’,
templateUrl: ‘templates/voted.html’,
controller: ‘AccountCtrl’

// if none of the above states are matched, use this as the fallback



I’m using the latest Ionic version 1.2 in my application. My question is:

How can I programmatically scroll to top with native scrolling? Without NS it works via ionicScrollDelegate service, but with NS it doesn’t.

Thanks a lot


Hi, I use no overflow-scroll is true, although on Android (4.2.2) the scrollposition is not kept? Any suggestions? I’m trying version 1.2.1, maybe it has sthg. to do with the switch to native scrolling in 1.2.0?



Native scrolling on Android devices (with and without Crosswalk) freezes after extended use. Scrolling freezes but it is possible to click on the row and rest of the app continues to work fine. This happens after using the app for more than 30+ minutes.


Can someone check this post/issue related to native scrolling please?

Help is appreciated !