2015-10-07 35 views
1

请参阅下面的布局。如果用户触摸ImageView或优选整个布局,我想在整个LinearLayout上显示选择高亮显示。这就像一个onclick效果。虽然我有一个选择器不工作。我该如何做这项工作?在LinearLayout上单击显示选择遮罩效果

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:gravity="center" 
    android:background="@drawable/layout_selector" 
    android:orientation="vertical"> 

    <ImageView 
     android:id="@+id/btnFromEasy" 
     android:layout_width="@dimen/normal_button_size" 
     android:layout_height="@dimen/normal_button_size" 
     android:adjustViewBounds="true" 
     android:scaleType="fitCenter" 
     android:src="@drawable/animals" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="@string/easy" 
     android:textColor="@color/subtitle_text_color" 
     android:textSize="@dimen/text_size_small" 
     android:textStyle="bold" /> 

</LinearLayout> 


    <?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
     <color android:color="Blue" /> 
    </item> 
    <item> 
     <color android:color="White" /> 
    </item> 
</selector> 
+0

请参阅http://stackoverflow.com/问题/ 10876119/android-how-can-i-create-a-selector-for-layouts-like-an-imagebutton-selector – headuck

回答

2

试试这个简单的代码。

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/background_image_pressed" /> // image  
    <item 
     android:drawable="@drawable/background_image_default" /> // image 
</selector> 

和里面的LinearLayout添加android:clickable="true"

<LinearLayout 
    ... 
    android:clickable="true" 
    ...> 

希望这有助于。

+0

感谢您的回复。 – pats

1

添加机器人:点击= “true” 以LinearLayout中的属性和它的工作

您的代码:

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:gravity="center" 
    android:background="@drawable/layout_selector" 
    android:orientation="vertical"> 

- >添加

<LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:background="@drawable/layout_selector" 
     android:orientation="vertical" 

     android:clickable="true"> 

android:layout_width="0dp"线使得布局可以” t是可见的,所以我将其更改为"wrap_content"

+0

它是否适用于线性布局? –

+0

这里是我的代码:https://github.com/thantieuhodo/LinearLayoutClickEffect – thantieuhodo

+0

感谢您的回复。我厌倦了这一点,突出显示只有当我点击空格控件不会与线性布局重叠时才会发生。我也试过android:descendantFocusability =“blocksDescendants”,但是没有做出改变。请注意,线性布局也是其他两种线性布局的子项。 – pats