在儿童焦点上,线性布局的背景消失一次

时间:2017-03-29 09:43:25

标签: android background android-linearlayout

我有一个搜索布局,让我们说名为search_holder.xml它是一个水平线性布局,包含一个搜索图标,一个用于输入的edittext和一个用于清除输入的X图标。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/parent"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:background="@drawable/button_search_images"
    android:orientation="horizontal"
    android:padding="@dimen/tick_icon_distance">

    <ImageView
        android:id="@+id/search_icon"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginRight="-5dp"
        android:padding="@dimen/tick_icon_distance"
        android:layout_marginLeft="-5dp"
        android:src="@drawable/ic_search" />

    <EditText
        android:id="@+id/search_field"
        android:layout_width="@dimen/search_width"
        android:layout_height="wrap_content"
        android:background="@color/transparent"
        android:hint="@string/search_google_images_hint"
        android:inputType="text"
        android:padding="5dp"
        android:textSize="@dimen/search_text_size" />

    <ImageView
        android:id="@+id/btnClear"
        android:visibility="gone"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/tick_icon_distance"
        android:paddingTop="@dimen/tick_icon_distance"
        android:src="@drawable/ic_x" />
</LinearLayout>

然后我将它包含在另一个布局中:

<include android:id="@+id/search_block"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_marginRight="@dimen/normal_right_margin"
                layout="@layout/search_holder"
                />

第一次点击edittext时会出现问题。 linearlayout的背景消失(变得透明)。

然后当我在外面拍摄时,背景又回来了。再次单击edittext,没有任何反应。它只在首次创建活动时发生一次。

API 21及更低版本会出现此问题。

我尝试启用/禁用硬件加速器,但它没有帮助。

我不知道它是不是版本,或者我错过了较低版本的内容。

感谢您的时间。

编辑(包含布局):

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="left"
tools:context=".MyActivity" >

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"  >

    <!--Custom ImageView for drawing multiple drawable to canvas-->
    <MyCustomImageView
        android:id="@+id/editorImageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="true"
        android:scaleType="fitXY" />

    <!--This is for a frame on top of the CustomImageView-->
    <ImageView
        android:id="@+id/frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="false" />

<!-- Tools Layouts - The container of the tool set on top -->

<RelativeLayout
    android:id="@+id/vb_action_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="@drawable/top_icons_shadow" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginTop="@dimen/small_top_margin"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:visibility="visible" >


        <!-- The included layout here -->
        <include android:id="@+id/search_block"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginRight="@dimen/normal_right_margin"
            layout="@layout/search_holder"
            />

        <!-- A few more button in the tool set -->
        <ImageView
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="@dimen/normal_right_margin"
            android:background="@drawable/icon1" />

        <ImageView
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="@dimen/normal_right_margin"
            android:background="@drawable/btn2" />

        <ImageView
            android:id="@+id/btn3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="@dimen/normal_right_margin"
            android:background="@drawable/btn3" />

        <ImageView
            android:id="@+id/btn4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="@dimen/small_top_margin"
            android:background="@drawable/btn4" />
    </LinearLayout>

    <!-- A top left menu button -->
    <Button
        android:id="@+id/slideMenu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="@dimen/xsmall_bottom_margin"
        android:layout_marginTop="@dimen/xsmall_bottom_margin"
        android:background="@android:color/transparent" />
</RelativeLayout>

注意:此布局采用横向模式

1 个答案:

答案 0 :(得分:0)

通过将android:focusable="true"android:focusableInTouchMode="true"设置为持有人LinearyLayout的根search_holder.xml来解决问题