Unmotivated

やる気はない

ListView で onItemClick() と onItemLongClick() を両立

ListView で onItemClick() と onItemLongClick() を同時に仕掛けた際に、指を離すタイミングによっては onItemLongClick() に続けて onItemClick() が呼ばれてしまう。

一般的な Touch Event の例に漏れず、 onItemLongClick() で true を返しておけば、その後のイベントはキャンセルされる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    /*
        なんやかんや
    */
}

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
    /*
        なんやかんや
    */
    return true;    // これで onItemLongClick() のあとに onItemClick() が呼ばれなくなる
}

ViewFlipper の InAnimation を1つ目には適用しない

ViewFlipper に InAnimation を設定した状態で startFlipping() をコールした際に、1つ目の View にも InAnimation が適用されてしまうのを回避したい。

AutoStart を指定せずに明示的に startFlipping() をコールした後に setInAnimation() してやれば OK

1
2
3
4
5
6
ViewFlipper viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);

// viewFlipper.setAutoStart(true);
viewFlipper.startFlipping();
viewFlipper.setInAnimation(this, R.anim.fadein);
viewFlipper.setOutAnimation(this, R.anim.fadeout);

Android 2.x で表示される ScrollView の端のフェード(Fading Edge)を消す

Android 2.x 系ではスクロール可能な方向に Fading Edge が表示されるが、それを消したい。

fadingEdge を指定する方法

  • xml で指定
1
2
3
4
5
<ScrollView
    ...
    android:fadingEdge="none"
    ...
    />
  • ICS 以上では android:requiresFadingEdge が代わりに適用される

fadingEdgeLength を 0dp に指定する方法

  • xml
1
2
3
4
5
<ScrollView
    ...
    android:fadingEdgeLength="0dp"
    ...
    />
  • 直接コードで指定する場合はこう
1
2
ListView listView = findViewById(R.id.listView);
listView.setFadingEdgeLength(0);

ブログ(また)はじめました

投稿の敷居を極限まで下げてみたので、久しぶりにブログを書き始めてみます。

基本的に、普段書いているメモを切り取って投げるだけなので、スニペットやら調査の結果やらばかりになるかと思います。

3日坊主にならないように、適当にがんばります。