SearchView sur le support.v7.appcompat bibliothèque problème: par défaut 9-patch arrière-plan rend pas correctement

Je suis le développement d'une application avec ActionBar utilisation d'un support.v7.appcompat de la bibliothèque. La barre d'action fonctionne, le SearchView est indiqué, l'indice montre. Le seul problème est que le fond de la SearchView n'est pas scalling correctement. L'Insead de l'habitude, il semble grand et avec le 9-patch lignes noires.

À l'aide de:

  • De développer, à partir de la ligne de commande, à l'aide de ant debug à compiler.
  • Sur Linux Mageia 3, ant version: Apache Ant(TM) version 1.8.4 compilé, le 11 janvier 2013
  • Reliant à la bibliothèque de projet.propriétés de la ligne:

android.de la bibliothèque.référence.1=../../../../../sdk/extras/android/support/v7/appcompat/

  • À l'aide de @style/Thème.AppCompat.La lumière
  • Testé dans l'appareil avec CM10-1, dans le dispositif avec un stock 4.1, et l'émulateur avec l'API 8 (Android 2.2). Même résultat dans tous les appareils.

Capture d'écran:

SearchView sur le support.v7.appcompat bibliothèque problème: par défaut 9-patch arrière-plan rend pas correctement

Code:

DiccionariCatala.java (activité principale):

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 (menu 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>

projet.propriétés

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

Toute aide me serait beaucoup aprécié. Je ne peux pas trouver quelque chose de mal, et il y a aussi l'étrange fait que despide cela, tout le reste du travail. Merci.

OriginalL'auteur ArnauOrriols | 2013-08-17