0
正如標題所示,每當我在視圖上調用setselected時,它也將觸發setSelected在所有子視圖上的setselected。如何防止這種情況發生?Android setselected查看視圖也觸發子視圖
正如標題所示,每當我在視圖上調用setselected時,它也將觸發setSelected在所有子視圖上的setselected。如何防止這種情況發生?Android setselected查看視圖也觸發子視圖
你不能。
看看它是如何實現的(從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) {
}
有沒有什麼地方會從發生在頂層停止呼叫,這取決於具體的實施如何處理/傳播的信息..
它看起來像dispatchSetSelected在ViewGroup級別上實現。我所做的是在自定義視圖中覆蓋它,它現在可以工作。感謝指針。 – Anonymouse 2014-12-11 02:01:43