2016-06-26 14 views
8

Ich habe tatsächlich ein Problem mit meiner Searchview auf der Support AppCompat v7 lib 24.0.0.Suchansicht nicht in Toolbar

Die Suche ist nicht ohne Text und Eingabetext (Blick Screenshot)

enter image description here

Die SEARCH Arbeit perfekt angezeigt.

Das ist mein Menü

<menu 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" 
    tools:context=".MainActivity"> 
    <item 
     android:title="@string/search" 
     android:id="@+id/action_search" 
     android:icon="@drawable/ic_search_24dp" 
     app:showAsAction="ifRoom|collapseActionView" 
     app:actionViewClass="android.support.v7.widget.SearchView"/> 
</menu> 

Und hier meine onCreateOptionsMenu;

Ich hoffe, dass mir jemand helfen kann. :)

Sebastian

+0

Warum rufen Sie menu.clear() auf? Es sollte nicht das Problem sein, weil Sie es nachher wieder aufblasen, aber versuchen Sie es ohne das menu.clear()? – Botz

+0

weil es mir alle Artikel doppelt zeigt –

+0

Das ist seltsam, kannst du mehr von deinem Fragment zeigen? – Botz

Antwort

17

Ich habe dieses Problem auch, ich habe Toolbar Höhe auf absoluten Wert anstelle von wrap_content und Problem gelöst. Ich weiß nicht warum, aber ich denke, dass dieses Problem mit CoordinatorLayout und Höhe der Symbolleiste zusammenhängt, etwas bricht die SearchView-Höhe. Wenn ich LinearLayout anstelle von CoordinatorLayout und AppBarLayout verwende, funktioniert es.

menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/action_search" 
     android:icon="@drawable/ic_search_white_24dp" 
     android:orderInCategory="100" 
     android:title="@string/action_search" 
     app:actionViewClass="android.support.v7.widget.SearchView" 
     app:showAsAction="always|collapseActionView" /> 
</menu> 

layout.xml

<android.support.design.widget.CoordinatorLayout 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"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="@dimen/toolbar_height" 
      android:paddingTop="@dimen/toolbar_top_padding" 
      android:background="?attr/colorPrimary" 
      app:title="@string/drawer_item_publisher_customization" 
      app:layout_scrollFlags="scroll|enterAlways|snap" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabLayout" 
      app:tabGravity="fill" 
      style="@style/DefaultTabLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

</android.support.design.widget.CoordinatorLayout> 

toolbar_height Wert:

<dimen name="toolbar_height">75dp</dimen> 

Before absolute height value (layout_height:"wrap_content")

After absolute height value (layout_height:"75dp")

+0

Danke das war das Problem: D –

+4

Es wäre besser, wenn Sie die benutzerdefinierte Dimen zu überspringen und die Symbolleistenhöhe auf: Android: Layout_Height = "? android: attr/actionBarSize" – esilver

+0

naja ich habe das selbe Problem aber es ist nicht behoben ..... – ASK

0

Stellen Sie sicher, dass Sie die AppCompat-Bibliothek zu Ihrem Projekt hinzugefügt haben. Wurde Ihre Aktivität "AppCompatActivity" erweitert?

Und auch showAsAction shoud sein: showAsAction="always|collapseActionView"

Hope this Hilfe!

+0

I bin in einem Fragment und meine MainActivity erstreckt sich von AppCompactActivity Vor dem Update auf 24.0.0 funktioniert es –

2

wenn Sie Thema verwenden: .NoActionBar Satz dieses in Ihrem onCreate()

setSupportActionBar(toolbar); 
0

Das ist sehr seltsam. Ich benutze Build-Tools 25.0.1 und unterstütze lib 25.1.0. Für mich war die angenommene Antwort nicht notwendig, aber die Art, wie der Menüeintrag definiert wurde, braucht eine kleine Änderung. Ich brauche es etwa so:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item 
    android:id="@+id/search" 
    android:title="@string/search_title" 
    android:icon="@drawable/ic_search_24dp" 
    app:showAsAction="always|collapseActionView" 
    app:actionViewClass="android.widget.SearchView"/> 

Wo app:showAsAction ist der Schlüssel. Lint unterstreicht dies als rot und sagt mir:

android:showAsAction verwenden soll, wenn die appcompat Bibliothek.

Wenn ich es jedoch auf android:showAsAction eingestellt habe, dann erscheint die Suchansicht einfach nicht. Stelle dir das vor.