SearchView auf Unterstützung.v7.appcompat-Bibliothek Ausgabe: Standard 9-patch-hintergrund nicht richtig macht

Ich entwickle eine app mit ActionBar mit Unterstützung.v7.appcompat-Bibliothek. Der action-bar arbeitet, die SearchView angezeigt wird, ist der Hinweis zeigt. Das problem ist nur, dass der hintergrund der SearchView ist die Skalierung nicht richtig. Insead von den üblichen, erscheint es groß und mit der 9-patch-schwarzen Linien.

Mit:

  • Die Entwicklung von der Befehlszeile, mit ant debug zu kompilieren.
  • Auf Linux Mageia 3, ant version: Apache Ant(TM) version 1.8.4 compiled on Januar 11 2013
  • Verknüpfung zur Bibliothek mit Projekt.Eigenschaften der Linie:

android.Bibliothek.Referenz.1=../../../../../sdk/extras/android/support/v7/appcompat/

  • Mit @style/Theme.AppCompat.Licht
  • Getestet in Gerät mit CM10-1-Gerät mit stock 4.1 und emulator mit API 8 (Android 2.2). Gleiches Ergebnis bei allen Geräten.

Screenshot:

SearchView auf Unterstützung.v7.appcompat-Bibliothek Ausgabe: Standard 9-patch-hintergrund nicht richtig macht

Code:

DiccionariCatala.java (main activity):

import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.support.v4.view.MenuItemCompat;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;


public class DiccionariCatala extends ActionBarActivity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }   

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_actions, menu);
        SearchManager SManager =  (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        MenuItem searchMenuItem = menu.findItem(R.id.action_search);
        SearchView searchViewAction = (SearchView) MenuItemCompat.getActionView(searchMenuItem);
        searchViewAction.setSearchableInfo(SManager.getSearchableInfo(getComponentName()));
        searchViewAction.setIconifiedByDefault(false);
        return super.onCreateOptionsMenu(menu);
    }   

    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch (item.getItemId()) {
                case R.id.action_search:
                    //openSearch();
                    return true;
                default:
                    return super.onOptionsItemSelected(item);
        }   
    }      
}

menu_actions.xml (im Menü xml)

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:diccionaricatala="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_search"
          android:title="@string/action_search_title"
          diccionaricatala:showAsAction="ifRoom"
          diccionaricatala:actionViewClass="android.support.v7.widget.SearchView" />
</menu>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mypackage.apps"
      android:versionCode="1"
      android:versionName="1.0">
      <uses-sdk android:minSdkVersion="8"  android:targetSdkVersion="16"/>
      <application android:label="@string/app_name"
                   android:icon="@drawable/ic_launcher"
                   android:theme="@style/Theme.AppCompat.Light">

       <activity android:name="DiccionariCatala"
                 android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
            <meta-data android:name="android.app.searchable"
                       android:resource="@xml/searchable"/>
        </activity>
   </application>
</manifest>

Projekt.Eigenschaften

target=android-16
android.library.reference.1=../../../../../sdk/extras/android/support/v7/appcompat/

Jede Hilfe würde mir viel apreciated. Ich kann nicht finden, alles falsch, und es gibt auch die seltsame Tatsache, dass despide, ist alles andere funktionieren. Danke.

InformationsquelleAutor ArnauOrriols | 2013-08-17

Schreibe einen Kommentar