SobaChaの基本操作とUI

Screenshot_2015-12-08-01-14-37.png

唐突にAndroid向けTwitterクライアント「SobaCha」について書いてみたいと思ったので書きました。

黒澤がAndroidで常用しているTwitterクライアントです。
最近Androidが推し進めている?マテリアルデザインには程遠いですが個人的にとても気に入っています。

作者のわかめそば氏の謎のこだわりにより、IS03などのAndroid1.6でも動くどころか、専用カスタマイズをしていると本人から聞いたことがあります。

ただ意図的にツイート以外は誤爆しないようにツーステップ以上の手数が必要になるような設計となっているため煩わしく感じる人もいるかもしれません。

続きを読む

ListViewでsmoothScrollByを使う

ListViewのonScrollStateChangedでsmoothScrollByしたらAndroid 2.3.x(RAM512MB)でStackOverFlowが発生する状態になりハマったのでメモ


listview.setOnTouchListener(new ListView.OnTouchListener(){
	@Override
	public boolean onTouch(View arg0, MotionEvent event) {
		switch (event.getAction() & MotionEvent.ACTION_MASK) {
		case MotionEvent.ACTION_MOVE:
			isTouch = true;
			break;
		}
		return false;
	}
});

listview.setOnScrollListener(new ListView.OnScrollListener() {
	@Override
	public void onScrollStateChanged(AbsListView view, int scrollState) {
		switch (scrollState) {
		case OnScrollListener.SCROLL_STATE_IDLE:
			if(isTouch)
			{
				//listview.smoothScrollBy(distance, duration);//ここでsmoothScrollするとStackOverFlowする
				mSmoothScrollHandler.removeCallbacks(doSmoothScroll);
				mSmoothScrollHandler.post(doSmoothScroll);
				isTouch = false;
				break;
			}
		}
	}

	private Runnable doSmoothScroll = new Runnable() {
		@Override
		public void run() {
			listview.smoothScrollBy(distance, duration);
		}
	};
}