2016-12-20 3 views
8

Aus irgendeinem Grund hat meine Searchview einen weißen Hintergrund statt transparent und ich kann nicht scheinen, es loszuwerden. Ich verwende das AppCompat-Design. Ich verwende eine ToolBar manuell als meine ActionBar.Ändern Sie die Hintergrundfarbe der SearchView-Schaltfläche und Abfrage

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/search" 
     android:title="Search" 
     android:icon="@android:drawable/ic_menu_search" 
     app:showAsAction="collapseActionView|ifRoom" 
     app:actionViewClass="com.exposure.controls.ExposureSearchView" /> 
</menu> 

enter image description here

<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:colorBackground">@color/app_background</item> 
     <item name="android:windowContentOverlay">@null</item> 
     <item name="android:background">@android:color/transparent</item> 
     <item name="windowActionBarOverlay">true</item> 
     <item name="android:windowActionBarOverlay">true</item> 
     <item name="android:windowFullscreen">true</item> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     <item name="searchViewStyle">@style/MySearchViewStyle</item> 
    </style> 

    <style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView"> 
     <item name="queryBackground">@android:color/transparent</item> 
     <item name="submitBackground">@android:color/transparent</item> 
    </style> 
+0

Sieht aus wie Sie eine veraltete Version des Search verwenden. Haben Sie sich die App App: actionViewClass = "android.support.v7.widget.SearchView" angesehen? https://developer.android.com/reference/android/support/v7/widget/SearchView.html – riggaroo

+0

Können Sie auch den Inhalt der Datei: ExposureSearchView – riggaroo

+0

Ich glaube, ich bin mit der neuen Version, überprüfen Sie meine Klasse. –

Antwort

3

ich diese Hintergründe aktualisiert zu transparent und es hat funktioniert.

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid"> 
     <item name="android:background" tools:ignore="NewApi">@android:color/transparent</item> 
     <item name="background">@android:color/transparent</item> 
0

Ich bin nicht sicher, ob es funktionieren wird oder nicht, ändern <item name="android:background">@android:color/transparent</item> zu <item name="android:background">@color/app_background</item> in Ihrem Start Thema

0

auf diese Weise versuchen

<style name="searchButtonStyle" parent="Widget.AppCompat.Light.ActionButton.Overflow"> 
     <item name="android:background">@color/your_color</item> 
     <item name="background">@color/your_color</item> 
</style> 

wie diese zu Ihrem Stil hinzufügen als

<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:actionOverflowButtonStyle">@style/searchButtonStyle</item> 
     <item name="actionOverflowButtonStyle">@style/searchButtonStyle</item> 
</style> 
0
SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.menu_search)); 
      SearchManager searchManager = (SearchManager) getSystemService(Activity.SEARCH_SERVICE); 
      searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

    // Setting up custom search button icon 
      int searchImgId = android.support.v7.appcompat.R.id.search_button; // I used the explicit layout ID of searchview's ImageView 
// Use Whatever icon you want over here in place of ic_search_black 
      ImageView v = (ImageView) searchView.findViewById(searchImgId); 
      v.setImageResource(R.drawable.ic_search_black); 
      searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
       @Override 
       public boolean onQueryTextSubmit(String query) { 
        // Do operation 
        return true; 
       } 

       @Override 
       public boolean onQueryTextChange(String newText) { 
        return false; 
       } 
      }); 
Verwandte Themen