如图所示,我在浏览器标签中有标签。并且我在标签图像之间填充以在彼此相邻的图像上重叠。当用户触摸它时,我需要一个特定的图像需要位于相邻图像(下面的图像)的顶部,并且还希望通过代码执行相同的操作。
我有一个onTouchListener到整个scrollview。当用户手动触摸图像时,它可以正常使用以下代码。
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);
上述两种方法都没有帮助。我需要提供更多细节吗?
答案 0 :(得分: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);