是否可以在android中捕获父视图上的子事件

时间:2015-05-03 09:57:30

标签: android

在Web开发中,我们有一些名为event delegation的东西 - 当父DOM元素接收其子代的所有事件时。这主要是出于性能原因而完成的。 android有这样的东西吗?例如,我有LinearLayout和100个孩子TextView。我不想为每个TextView添加100个事件监听器,但只添加一个到LinearLayout并在其中捕获事件?

例如,而不是:

for (int i = 0; i < length; i++) {
    TextView tv = new TextView(getApplicationContext());

    tv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {}
    });

    layout.addView(tv);
}

这样做:

for (int i = 0; i < length; i++) {
    TextView tv = new TextView(getApplicationContext());
    layout.addView(tv);
}

layout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // how to know here whether `v` is an instance of TextView or LinearLayout?
    }
});

0 个答案:

没有答案