view组件的duplicateParentState属性

今天做页面的时候遇到一个小问题,在点击的时候改变组件的图片来源,这个很简单大家都知道,用selector可以很快实现。但是现状有点特殊,是LinearLayout中包裹着一个ImageView

需要当点击LinearLayout的时候ImageView图片来源的改变,试了好久还是不行,其中还牵扯到了组件的冒泡,结果在activity中实现的,后来想想不是很好,随手翻阅了一下api发现view有一个duplicateParentState属性,看表面意思是和父组件保持同样的状态,结果抱着试试看的心态,果然可以实现当点击LinearLayout的时候促发内部组件的selector,看来还是基础不牢固啊!

<LinearLayout
                android:id="@+id/id_linearLayout_adjust_operate"
                android:layout_width="match_parent"
                android:layout_height="80dp"
                android:layout_marginTop="26dp"
                android:background="@drawable/list_main_bg_selector"
                android:gravity="center_vertical"
                android:orientation="horizontal" >

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="16dp"
                    android:clickable="true"
                    android:duplicateParentState="true"
                    android:focusable="true"
                    android:src="@drawable/icon_main_operation_selector" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="14dp"
                    android:text="@string/STR_MAIN_ADJUST_OPERATE"
                    android:textColor="#909bb8"
                    android:textSize="20sp" />
            </LinearLayout>

这样就可以实现当点击付LinearLayout促发内部ImageView的selector