工具栏中的EditText没有失去焦点

时间:2016-12-07 20:28:26

标签: android android-layout android-edittext android-toolbar

我正在尝试使用EditText实现工具栏作为搜索框。这是我想要实现的目标: enter image description here

到目前为止一切看起来还不错,但EditText表现得很奇怪。当我点击它时,它会按预期获得焦点,但是当我在EditText之外的任何地方点击时,没有任何事情发生,因此软键盘都不会隐藏,EditText也不会失去焦点。 这是搜索框视图的代码:

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:cardview="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF"
    cardview:cardBackgroundColor="#FFFFFF"
    cardview:cardCornerRadius="2dp"
    cardview:cardElevation="4dp"
    cardview:cardUseCompatPadding="true"
    >

  <RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="#FFFFFF"
      android:descendantFocusability="beforeDescendants"
      android:focusableInTouchMode="true"
      >

    <ImageView
        android:id="@+id/search_icon"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:layout_marginStart="10dp"
        android:background="@android:color/transparent"
        android:src="@drawable/ic_search_black_24dp"
        android:tint="#7d7d7d"
        />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="7dp"
        android:layout_marginRight="7dp"
        android:layout_toLeftOf="@+id/speech"
        android:layout_toRightOf="@+id/search_icon"
        android:background="@android:color/transparent"
        android:hint="Search for a store"
        android:imeOptions="actionSearch"
        android:inputType="text"
        android:textColor="#494949"
        android:textColorHint="#a9a9a9"
        android:textSize="16sp"
        />

    <ImageView
        android:id="@+id/speech"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:layout_marginEnd="10dp"
        android:background="@android:color/transparent"
        android:src="@drawable/ic_mic_black_24dp"
        android:tint="#7d7d7d"
        />

  </RelativeLayout>
</android.support.v7.widget.CardView>

以下是工具栏中的用法:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

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

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        foreground="?android:windowContentOverlay"
        >

      <android.support.v7.widget.Toolbar
          android:id="@+id/toolbar"
          android:layout_width="match_parent"
          android:layout_height="?actionBarSize"
          app:theme="@style/Toolbar"
          app:titleTextAppearance="@style/ToolbarTitle"
          foreground="?android:windowContentOverlay"
          >
        <include layout="@layout/search_box"/>
      </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>


    <FrameLayout
        android:id="@+id/activityContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="true"
        />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/cameraButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="16dp"
        android:src="@drawable/ic_camera_white_24dp"
        app:backgroundTint="@color/primaryGreen"
        app:fabSize="normal"
        app:pressedTranslationZ="12dp"
        />

  </FrameLayout>

  <android.support.design.widget.NavigationView
      android:id="@+id/navigationView"
      android:layout_width="wrap_content"
      android:layout_height="match_parent"
      android:layout_gravity="start"
      android:fitsSystemWindows="true"
      app:headerLayout="@layout/navigation_drawer_header"
      app:itemBackground="@drawable/drawer_item_bg"
      app:itemIconTint="@color/drawer_item"
      app:itemTextColor="@color/drawer_item"
      app:menu="@menu/navigation_menu"
      app:theme="@style/NavigationDrawer"
      />

</android.support.v4.widget.DrawerLayout>

也许我错过了一些显而易见的事情,但我花了3个小时才想弄清楚,没有任何运气...... 有没有人有类似的问题?任何帮助或指示将不胜感激。

0 个答案:

没有答案