0

ここに画像の説明を入力

画像に示すように、ブラウザのタブと同じようにタブがあります。また、隣接する画像同士が重なるように、タブ画像間にパディングがあります。ユーザーがそれに触れたときに特定の画像が隣接する画像(下の画像)の上にある必要があり、コードを介して同じことをしたい。

ここに画像の説明を入力

スクロールビュー全体に onTouchListener があります。ユーザーが手動で画像に触れると、以下のコードで正常に動作します。

tab[id].bringToFront();
tabScrollView.invalidate();

ユーザーが手動でタッチする代わりにコードを使用して同じことを行うと、選択したタブの画像は、bringToFront() メソッドを使用するため、右端に移動します。隣接する画像の上に置く方法はありますか?

アップデート:

私はすでに試しましたが、

tab[id].performClick();
tab[id].performLongClick();

また、試してみましたが、

tab[id].setOnTouchListener(new MyTouchListener()); //my own listener
// Obtain MotionEvent object
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 0.0f;
float y = 0.0f;
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
                downTime, 
                eventTime, 
                MotionEvent.ACTION_UP, 
                x, 
                y, 
                metaState
            );

// Dispatch touch event to view
tab[id].dispatchTouchEvent(motionEvent);

上記の両方の方法は役に立ちません。詳細を提供する必要がありますか?

4

1 に答える 1

0

で解決しました、

// Obtain MotionEvent object
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 0.0f;
float y = 0.0f;
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
            downTime, 
            eventTime, 
            MotionEvent.ACTION_UP, 
            x, 
            y, 
            metaState
        );

// Dispatch touch event to the view which contains all the images
tabScrollView.dispatchTouchEvent(motionEvent);
于 2013-10-27T19:11:52.920 に答える