2017-12-20 1 views
0

Ich habe hier im stackoverflow mehrere Lösungen ausprobiert, aber keine funktionierte für mich.SearchView immer erweitert, in der Symbolleiste?

Ich habe das Symbol in der Symbolleiste und es erweitert, wenn geklickt wird und öffnet die Aktivität, die die Suche durchgeführt werden soll. Codes unter:

XML Menu:

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id="@+id/item_search" 
     android:orderInCategory="200" 
     android:title="@string/search" 
     android:icon="@drawable/ic_search_24dp" 
     app:actionViewClass="android.support.v7.widget.SearchView" 
     app:showAsAction="ifRoom|collapseActionView" 
     android:iconifiedByDefault="false" /> 

</menu> 

Aktivität Code:

class HomeActivity : LoggedActivity<ViewHomeBinding, HomeViewModel>(), HomeView { 

    // ATTRIBUTES 

    private var pagerAdapter: HomePagerAdapter? = null 

    // BASE METHODS 

    override fun onInject(component: LoggedActivityComponent) = component.inject(this) 

    override val contentView = R.layout.view_home 

    override fun onCreateOptionsMenu(menu: Menu): Boolean { 
     menuInflater.inflate(R.menu.menu_home, menu) 

     return super.onCreateOptionsMenu(menu) 
    } 

    override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) { 
     R.id.item_search -> { 
      startActivity(Intent(this, SearchActivity::class.java)) 
      true 
     } 
     else -> super.onOptionsItemSelected(item) 
    } 

Ich wünschte, es würde immer erweitert werden. Und von der weißen Farbe, da es grün erweitert, ist es möglich? Vielen Dank

Ich habe dies in XML versucht; Android: iconifiedByDefault = "false" App: iconifiedByDefault = "false"

EDIT:

Toobar XML in HomeActivity

<data> 
    <variable 
     name="viewModel" 
     type="com.plugapps.zuk.viewmodel.HomeViewModel"/> 
</data> 

<android.support.design.widget.CoordinatorLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/coordinator" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 

     </android.support.v7.widget.Toolbar> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMode="fixed" 
      app:tabGravity="fill"/> 

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

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

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

+0

Sie setzen es über ein Menü. Daher erhalten Sie ein Symbol. Was Sie dazu verwenden müssen, schließen Sie 'Toolbar' in layout.xml ein und fügen Sie eine 'SearchView'inside' Toolbar' hinzu. –

+0

Wie kann ich das tun? –

+0

haben Sie versucht, dies [Lösung] (https://stackoverflow.com/a/24123262/6559031) –

Antwort

1

Diese, wie die Struktur Ihrer layout.xml wird aussehen. Sie können die gewünschte Eigenschaft auf die Layouts und Ansichten anwenden.

<LinerLayout> 
    <Toolbar> 
     <SearchView/> 
    </Toolbar> 
</LinerLayout> 
0

Aktualisieren Sie Ihr Menü xml wie

folgt
app:showAsAction="always" 
    app:iconifiedByDefault="true" 
    android:iconifiedByDefault="true" 
+0

funktioniert nicht .... –

Verwandte Themen