忍者ブログ

とある社内SEの備忘録 !!

主にRPA、Androidアプリ開発について投稿しています。メモ書きです。

ScrollViewでスクロール状態の取得。吸いつきも。

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ScrollViewでスクロール状態の取得。吸いつきも。

OnTouchListenerを定義。

private int oldX;
ScrollView.OnTouchListener OnTouchDate = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int width = v.findViewById(R.id.tvMonth_01).getWidth()+v.findViewById(R.id.lineMonth_00_01).getWidth();

int scrollX = v.getScrollX();
int index =scrollX / width; //firstVisibleItem
int su = scrollX % width; //firstVisibleItemとNextの揺らぎ
int newX;
if(su > width / 2){
newX = (index + 1) * width; //半数超えてるなら次に吸いつき
}else{
newX = (index) * width; //半数超えてないなら前に吸いつき
}

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// タップした時に ScrollViewのScrollY座標を保持
oldX = scrollX;
break;
case MotionEvent.ACTION_MOVE:
// scroll座標とoldを比較。スクロール状態の判定。
if (oldX != scrollX) {
//スクロール中
}
System.out.println("スクロール終了");
break;
case MotionEvent.ACTION_UP:
//吸いつき座標先へスクロール
v.setScrollX(newX);
break;
default:
//来ない
break;
}
return false;
}
};

今は、ListViewがあるとTouchEventを拾えないのが難題。
dispatchで拾えても、ScrollX,Yを取得できていない。
見た目のスクロール自体は、ScrollViewじゃなくてListViewがスクロールしてるのかな。。
要調査。


PR

コメント

プロフィール

HN:
Satoshin
性別:
男性
職業:
開拓エンジニア
趣味:
ダーツ、麻雀、カラオケ、ジョギング
自己紹介:
横浜在住の30代♂

某企業の情報システム部門に所属。
⇒転職活動中

業務効率化を推進しつつ自社用Androidアプリを開発している。
言語:Java、VB.NET、VBA、ASP.NET、C#
興味:Kotlin、Python、AWS、UiPath

横浜圏の友人皆無・・(´;ω;`)
RPA、ダーツ、麻雀、飲み仲間募集中w

麻雀格闘倶楽部はココに出没中

AbemaTVでM.LEAGUE鑑賞中!!

P R