0

我有最简单的应用程序,我希望收到悬停事件,不幸的是,无论我尝试什么,我似乎都无法接收它们。我可以猜测其他地方正在接收它们并使用它们,但布局中只有两个视图,一个 RelativeLayout 容器和 TextView。将 RelativeLayout 更改为 LinearLayout 没有积极影响,在 TextView 实例上调用 setOnHoverListener 也没有。

我的应用程序针对 4.0.3 (API 15)。源代码与 SDK 源代码中提供的悬停示例几乎相同。它应该可以工作。我在过去见过它的工作。

如果有人能阐明我可能看不到的东西,或者对我能看到的东西有任何建议,我将不胜感激。

硬件:索尼 Xperia Sola

安卓版本:4.0.4

活动来源:

public class MainActivity extends Activity {
    private TextView mMessageTextView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mMessageTextView = (TextView) findViewById(R.id.message);
        View container = findViewById(R.id.container);
        container.setOnHoverListener(new View.OnHoverListener() {
            @Override
            public boolean onHover(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_HOVER_ENTER:
                        mMessageTextView.setText("Entered: " + event.getX() + ":" + event.getY());
                        break;
                    case MotionEvent.ACTION_HOVER_MOVE:
                        mMessageTextView.setText("Move: " + event.getX() + ":" + event.getY());
                        break;
                    case MotionEvent.ACTION_HOVER_EXIT:
                        mMessageTextView.setText("Exit: " + event.getX() + ":" + event.getY());
                        break;
                }
                return false;
            }
        });
    }
}
4

1 回答 1

0

老问题,但无论如何。我相信这发生在你身上,因为一些子视图会拦截父级的悬停状态。

其他原因可能是您没有将容器声明为可聚焦的

于 2013-05-01T23:48:16.913 回答