[Samsung Gear S3] 10urshin:
Oh, sorry didn't realize it was you :o Anyway i have found the problem, snaplist disapears not because circle-helper is not recreating the snaplist on pagebeforeshow but because onReceiveCallback gets called after pagebeforeshow even more than once, so i swapped your circle-helper with mine and fired up updatesnaplist event at the end of onReceiveCallback. Sent the merge request.

And yes it is very incomplete and about the ListView, it has no js methods, none public at least. Here is the source for it.

/*global window, define */
/*
* Copyright (c) 2015 Samsung Electronics Co., Ltd
*
* Licensed under the Flora License, Version 1.1 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://floralicense.org/license/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*jslint nomen: true */
/**
* # Listview Widget
* Shows a list view.
*
* The list widget is used to display, for example, navigation data, results, and data entries. The following table describes the supported list classes.
*
* ## Default selectors
*
* Default selector for listview widget is class *ui-listview*.
*
* To add a list widget to the application, use the following code:
*
* ### List with basic items
*
* You can add a basic list widget as follows:
*
* @example
* <ul class="ui-listview">
* <li>1line</li>
* <li>2line</li>
* <li>3line</li>
* <li>4line</li>
* <li>5line</li>
* </ul>
*
* ### List with link items
*
* You can add a list widget with a link and press effect that allows the user to click each list item as follows:
*
* @example
* <ul class="ui-listview">
* <li>
* <a href="#">1line</a>
* </li>
* <li>
* <a href="#">2line</a>
* </li>
* <li>
* <a href="#">3line</a>
* </li>
* <li>
* <a href="#">4line</a>
* </li>
* <li>
* <a href="#">5line</a>
* </li>
* </ul>
*
* ## JavaScript API
*
* Listview widget hasn't JavaScript API.
*
* @class ns.widget.wearable.Listview
* @extends ns.widget.BaseWidget
*/
(function (document, ns) {
"use strict";
var BaseWidget = ns.widget.BaseWidget,
engine = ns.engine,
Listview = function () {
},
prototype = new BaseWidget();

/**
* Dictionary for listview related events.
* For listview, it is an empty object.
* @property {Object} events
* @member ns.widget.wearable.Listview
* @static
*/
Listview.events = {};

/**
* Build Listview
* @method _build
* @param {HTMLElement} element
* @return {HTMLElement}
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._build = function (element) {
return element;
};

prototype._init = function (element) {
return element;
};

prototype._bindEvents = function (element) {
return element;
};

/**
* Refresh structure
* @method _refresh
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._refresh = function () {
return null;
};

/**
* Destroy widget
* @method _destroy
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._destroy = function () {
return null;
};

Listview.prototype = prototype;
ns.widget.wearable.Listview = Listview;

engine.defineWidget(
"Listview",
".ui-listview",
[],
Listview,
"wearable"
);
}(window.document, ns));