如何在Android上的Horizo​​ntalScrollView中解决ImageView填充问题

时间:2013-10-11 18:33:50

标签: java android android-layout imageview android-scrollview

enter image description here

如图所示,我在浏览器标签中有标签。并且我在标签图像之间填充以在彼此相邻的图像上重叠。当用户触摸它时,我需要一个特定的图像需要位于相邻图像(下面的图像)的顶部,并且还希望通过代码执行相同的操作。

enter image description here

我有一个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);

上述两种方法都没有帮助。我需要提供更多细节吗?

1 个答案:

答案 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);