2014-12-11 111 views

回答

1

你不能。

看看它是如何实现的(从here):

public void setSelected(boolean selected) { 
    //noinspection DoubleNegation 
    if (((mPrivateFlags & PFLAG_SELECTED) != 0) != selected) { 
     mPrivateFlags = (mPrivateFlags & ~PFLAG_SELECTED) | (selected ? PFLAG_SELECTED : 0); 
     if (!selected) resetPressedState(); 
     invalidate(true); 
     refreshDrawableState(); 
     dispatchSetSelected(selected); 
     notifyViewAccessibilityStateChangedIfNeeded(
       AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED); 
    } 
} 
/** 
* Dispatch setSelected to all of this View's children. 
* 
* @see #setSelected(boolean) 
* 
* @param selected The new selected state 
*/ 
protected void dispatchSetSelected(boolean selected) { 
} 

有没有什么地方会从发生在顶层停止呼叫,这取决于具体的实施如何处理/传播的信息..

+0

它看起来像dispatchSetSelected在ViewGroup级别上实现。我所做的是在自定义视图中覆盖它,它现在可以工作。感谢指针。 – Anonymouse 2014-12-11 02:01:43