这是我的XML
<android.support.v7.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp">
<LinearLayout
android:id="@+id/commander_image_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:background="?attr/selectableItemBackground"
android:padding="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="15dp"
android:paddingEnd="15dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingStart="15dp"
android:text="@string/image_chooser_txt"
android:textAlignment="center" />
<ImageView
android:id="@+id/commander_result_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:minHeight="150dp"
android:minWidth="200dp"
android:padding="5dp"
android:scaleType="centerInside"
android:src="@mipmap/default_image"
android:contentDescription="@string/chosen_image" />
</LinearLayout>
</android.support.v7.widget.CardView>
我想设置android:background =&#34;?attr / selectableItemBackground&#34;在LinearLayout上,如果我点击它或在imageView上。
有什么解决方案吗?它就像指针事件:css
中没有答案 0 :(得分:0)
默认情况下,LinearLayout不可点击,也不会接收触摸事件。您可以简单地指出您的LinearLayout应该是可点击的,而您的ImageView不是通过添加:
<LinearLayout
android:id="@+id/commander_image_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:background="?attr/selectableItemBackground"
android:padding="15dp"
android:focusable="true"
android:clickable="true">
<ImageView
android:focusable="false"
android:clickable="false"
/>
/>
答案 1 :(得分:0)
<android.support.v7.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp">
<LinearLayout
android:id="@+id/commander_image_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:addStatesFromChildren="true"
android:background="?attr/selectableItemBackground"
android:gravity="center"
android:orientation="vertical"
android:padding="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="15dp"
android:paddingEnd="15dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingStart="15dp"
android:text="@string/image_chooser_txt"
android:textAlignment="center" />
<ImageView
android:id="@+id/commander_result_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:contentDescription="@string/chosen_image"
android:minHeight="150dp"
android:minWidth="200dp"
android:padding="5dp"
android:scaleType="centerInside"
android:src="@mipmap/default_image" />
</LinearLayout>
</android.support.v7.widget.CardView>
使用android:addStatesFromChildren =&#34; true&#34;,selectableItemBackground适用于儿童。然后我只需要以编程方式设置我的imageView不可点击(不能在xml中工作)它就像我想要的那样