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:
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 Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, ich will mich umbringen. Ich habe es behoben. Weiß nicht, wie. Ich kann nicht reproduzieren Sie den Fehler wieder!
was ich denke hat die den Fehler behoben hat: ich habe Hinzugefügt-import-android.Unterstützung.v7.app.ActionBar;
Habe ich dann entfernt, den Fehler zu reproduzieren, aber es ist nicht zurück.
Habe ich auch deinstallieren, Build-tools 18.0.1 (die in Kursiv und machte mich mißtrauisch), so dass ich dachte, es könnte sein, die Quelle der Fehler. Aber ich habe es neu installiert, und kann nicht reproduzieren Sie den Fehler.
Ich weiß nicht was sonst noch sein könnte. Jedenfalls, es geht weiter... (Augen)
Edit:
Es ist wieder passiert und dieses mal habe ich in der Lage, um es einzugrenzen ist. Stellt sich heraus, es ist ein Fehler von Build-Tools v18.*, Downgrade auf v17 löst das Problem.
Ratet mal, was mir passiert ist mit 23.0.3. Downgrade auf 23.0.2 das problem gelöst. Dank der Punkt die Richtung, ich war auf der Suche seit Stunden eine Lösung, bis ich dies sah.
InformationsquelleAutor ArnauOrriols
Dies ist normalerweise ein Problem, in dem die Ressourcen (R) Datei wurde nicht korrekt erstellt und einige Referenzen sind falsch ausgerichtet.
Dabei eine saubere ist in der Regel eine gute Lösung, da es regeneriert diese Datei. Dies ist, was Sie versehentlich getan haben, als Neuinstallation.
Kann nicht sicher sagen, ich vermute seine typische eclipse 🙂 Der Fall, wo ich in der Regel sehen, es ist, wenn ich "Build Automatically" ausgewählt und um schnell änderungen vorzunehmen, um meine Ressourcen.
Stellt sich heraus, es ist wieder passiert und dieses mal habe ich in der Lage, um das Problem einzugrenzen. Es ist ein Fehler von Build-Tools V18.*. Downgrade auf V17 löst.
InformationsquelleAutor jimmithy
Ich hatte das gleiche Problem mit build-tools 19.0.1, aber neuere version 19.0.3 das problem behoben. Versuchen Sie es, hoffentlich wird es auch Ihnen helfen.
InformationsquelleAutor Martin Edlman