Titanium의 ListView에 Android 지원 PullView가 없었기 때문에 만들었습니다.

PullView라고 하는 것은 테이블을 아래로 당겨 갱신하고 있다고 하는 것이 표시되는 아레군요.
역시 갱신 처리는 지금 PullView 사용하지 않는다고 생각하고 있었습니다만,
Titanium의 ListView는 Android에서 pullView를 사용할 수 없습니다.
지금은 iOS 전용입니다.

몇 가지 Widget도 있었지만 이번에는 스스로 만들어 보았습니다.
샘플이라는 것으로 ListView에는 Qiita로부터 취득한 json 데이터를 표시하고 있습니다. Qiita의 API는 인증 없이 사용할 수 있어 편리하네요.

소스는 여기입니다.
htps : // 기주 b. 코 m / 가네자 씨 / 아 y 푸 l

Android 버전



android.gif

iPhone 버전



일단 iPhone판도 움직이도록 썼습니다.
ios.gif

PullView를 사용할 수 있는 Widget



Alloy-PullToRefresh



이쪽 꽤 좋은 것 같아서, 이번 사용해 보고 싶습니다.
iOS와 Android 모두에서 사용할 수 있습니다.



Alloy Pull to Refresh Widget



여기는 TableView의 Wiget입니다.
Future work에서 ListView라고 쓰여 있으므로 언젠가 대응해 줄 것입니다.

어떻게 만드는가? pull, pullend 이벤트는 Android에서 검색할 수 없으므로 touchmove와 touchend를 사용하여 pull, pullend 같은 작업을 수행합니다. listview의 scroll / touchstart 이벤트를 얻는 것을 포기합니다. ※여기 listview의 touchstrat는 취득할 수 없습니다만, 그 부모 View로부터는 취득할 수 있습니다. touchmove 이벤트에서 처음 터치한 시작점 결정 touchmove 이벤트 2회째 이후에서 Y축이 아래로 움직인 분, 부모 View를 아래로 옮긴다 touchend에서 임계값을 초과한 경우 업데이트 처리  touchmove 부분 var scrollableView_top = 50; //scrollableView의 기본 높이 var y = 0; // 현재 scrollableView 높이 // 스크롤한 분 scrollableView의 위치를 ​​이동 $.scrollableView.addEventListener('touchmove', function(e) { // y가 0이 아닌 경우 두 번째 이후의 touchmove 이벤트 //scrollableView의 기본 높이보다 아래를 터치한 위치가 낮습니다. //이전 만진 위치보다 아래인지 확인 if(y != 0 && Number(e.y) > scrollableView_top && Number(y) <= Number(e.y)){ var top = 0; top = (Number(e.y) - Number(y))*0.1+scrollableView_top; Ti.API.info("top:"+String(top)); $.scrollableView.setTop(top); // 시작점 기록 }else if(Number(e.y) > scrollableView_top && Number(e.y) <300+scrollableView_top){ y = e.y; } });  touchend 부분 //PullView 처리 Android // 스크롤이 종료했을 때의 높이가 임계치 이상이었을 경우에 갱신 sy $.scrollableView.addEventListener('touchend', function(e) { // 현재 scrollableView의 높이 초기화 y = 0; var value = 'touchend fired x' + e.x + 'y' + e.y; Ti.API.info(value); var top = $.scrollableView.getTop(); // 현재 scrollableView의 높이가 임계값보다 높으면 업데이트 처리 if(top > 100 && Titanium.Network.online){ infoUpdate("update"); // 그렇지 않으면 아무 작업도 하지 않고 원래 위치로 되돌리기 }else{ $.scrollableView.animate({top: scrollableView_top+"dp", duration: 100}); } }); 요약 만들어 보면 간단했기 때문에, 여러가지 커스터마이즈 할 수 있다고 생각합니다. 소스는 여기가되므로 좋으면 사용해보십시오. htps : // 기주 b. 코 m / 가네자 씨 / 아 y 푸 l

이쪽의 내용은 얼마 전 Titanium도 쿠모쿠 공부회 21회에서도 이야기한 내용입니다.
그 때의 슬라이드는 이쪽

titanium21titanium


안드로이드의 PullView 샘플은 다른 것보다 적기 때문에,
아직 ListView가 사용되고 있지 않을까~라고 생각했습니다.

빨리 Titanium 측에서 Android에서도 pullView를 사용할 수있게되면 좋겠다 ~라고 생각합니다.

좋은 웹페이지 즐겨찾기