Я заметил, что если я разместил android.support.v7.widget.SearchView
внутри android.support.v7.widget.Toolbar
с его высотой, установленной на wrap_content
, что SearchView
ведет себя очень странно. Сначала это выглядит нормально, но затем, как только он получает фокус, он исчезает и больше не занимает места в макете. Это можно решить, установив явную высоту на Toolbar
, но я пытаюсь использовать wrap_content
специально, потому что для моего использования используется Toolbar
для динамического изменения размера.Как я могу поместить SearchView внутри ToolBar с высотой, установленной в wrap_content, без ее исчезновения?
Возможно, также стоит отметить, что SearchView
по-прежнему функционирует после его исчезновения. Если я добавлю SearchView.OnQueryTextListener
в SearchView
, я могу заметить, что текст запроса действительно обновляется по мере ввода. Ни этот текст, ни какая-либо другая часть SearchView
не занимает места в макете, и если вы заставляете его быть незаметным в макете, то он все еще не отображается.
Этот вид кажется ошибкой в SearchView
для меня. Есть ли у кого-нибудь более глубокое понимание того, почему это происходит или как это работает?
Вот рабочий пример вопроса:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.me.MyActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/appbar_padding_top"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay">
<android.support.v7.widget.SearchView
android:id="@+id/internalSearchView"
app:queryHint="To..."
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</android.support.v7.widget.SearchView>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
у косяка у установить матч родитель, как высоту, она будет соответствовать высотам – Ak9637
панели инструментов, которые будут работать хорошо в этом тривиальном примере, но я хочу, чтобы быть 'wrap_content', потому что я на самом деле имею дополнительные динамические представления там, что изменить эффективную высоту и потребовать расширения панели инструментов. Ошибочное поведение можно наблюдать без дополнительных просмотров, поэтому я удалил их из примера кода. –