android选择器作为背景布局,并重叠文本视图

时间:2011-11-22 23:03:00

标签: android android-layout

我想使用“drawable / selector”绘制一个按钮,以便在单击按钮时背景颜色发生变化。 所以我使用drawable(有选择器)定义了RelativeLayout的背景。第一步工作正常:当我单击布局对象时,颜色会发生变化。

在那个RelativeLayout中,我现在添加两个独立的动态文本视图。这些文本视图现在使用RelativeLayout的大部分空间。因此,当我单击文本视图对象时,父布局的背景不再更改。

那么,有没有办法让布局具有动态背景(处理用户点击以改变颜色)并在顶部有重叠的视图?

请注意,relativeLayout的背景是一个从上到下的渐变。

<RelativeLayout
    android:id="@+id/titleBackground"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/button_background"
    android:gravity="left|center_vertical"
    android:clickable="true"
    >

    <TextView android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/light_text"
        android:gravity="left|center_vertical"
        android:singleLine="true"
        android:ellipsize="end"
        />

    <TextView android:id="@+id/subtitle"
        android:layout_below="@id/title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/light_text_alpha"
        android:gravity="left|center_vertical"
        android:textSize="@dimen/secondarylisttext_size"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:ellipsize="end"
        />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

您的textview正在捕获点击事件,并且它们不会传递到后台的relativelayout。您需要在两个文本视图中添加onTouchListener,并根据动作事件的“ACTION_DOWN,ACTION_UP”为触摸侦听器内的相对布局设置背景。

可能有一些方法可以让textview通过点击事件。但我不确定。上述方法只是一个解决方案。可能还有其他人。

答案 1 :(得分:0)

正如blessenm所说,一切都取决于TextView,如果你让它们可点击,那么父选择器就不再计算了(当然你也可以在TextView上使用选择器)。