Barra di azione Sherlock ha deprecato metodi
-
11-12-2019 - |
Domanda
Ho scaricato il ActionBarSherlock versione 4.1.0.0, e ha aggiunto un Android libreria di Progetto in Eclipse 4.2 sul mio Win7 java 1.6 aggiornamento 24.Ho usato un Progetto Eclipse Target Build di Android 4.1 in Progetto | Proprietà | Progetto di costruzione di Destinazione.Voglio inserire la ActionBar funzionalità in un'applicazione esistente che ha minSdkVersion="7".Ho notato che il codice da ActionBarSherlock libreria sembra avere alcuni metodi deprecati, e un errore:
Esempio 1:ActionBarContainer.java, ActionBarContextView.java, ScrollingTabContainerView.java - utilizza setBackgroundDrawable - Il metodo setBackgroundDrawable(Drawable) dal tipo di visione è sconsigliata
public ActionBarContainer(Context context, AttributeSet attrs) {
super(context, attrs);
setBackgroundDrawable(null);
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.SherlockActionBar);
mBackground = a.getDrawable(R.styleable.SherlockActionBar_background);
mStackedBackground = a.getDrawable(
R.styleable.SherlockActionBar_backgroundStacked);
if (getId() == R.id.abs__split_action_bar) {
mIsSplit = true;
mSplitBackground = a.getDrawable(
R.styleable.SherlockActionBar_backgroundSplit);
}
a.recycle();
setWillNotDraw(mIsSplit ? mSplitBackground == null :
mBackground == null && mStackedBackground == null);
}
Quick fix mostra come Aggiungere @SupressWarnings 'negativi' per ActionBarContainer
Esempio 2:IcsProgressBar.java utilizza animationResolution che mostra come obsoleto, stesso quick fix come sopra
private static final int[] ProgressBar = new int[] {
...
android.R.attr.animationResolution
Inoltre, ho un errore in ActivityChooserView.java:
private static class SetActivated {
public static void invoke(View view, boolean activated) {
view.setActivated(activated);
}
}
Errore è SetActivated - Chiamata richiede API 11 (corrente min 7).Questo ha un senso, basato sul manifesto:
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>
Non dovrebbe API 7 va bene, poiché l'Azione Bar Sherlock di lavoro a Andriod 2.x?Gli altri hanno fatto questa esperienza, e se è così, qual è l'azione consigliata?Casa/ignorare la rimozione?Che cosa circa l'errore sul SetActivated?Ho rivisto il file leggimi e fatto qualche net ricerche, ma non è venuto in mente nulla su questo.Grazie per qualsiasi suggerimento.
Grazie!
Soluzione
È bene.Il codice è 2.x compatibile e anche alcuni metodi deprecati 4.x, è ancora lì.Esso, inoltre, non significa che 4.x questi metodi deprecati verrà utilizzato.La fonte è di 2.x-4.x cui non c'è altro modo (per non parlare di riflessione, ma che vorrei compromettere le prestazioni, e, per adesso, non è necessario).In questo modo è sicuro di ignorare questo.Probabilmente sarebbe meglio rivolgersi ammortamenti off per alcuni file, ma non c'è.Quindi non preoccupatevi.
Altri suggerimenti
Questo è in realtà non rispondere alla domanda, ma ho lo stesso problema quando ho avuto bisogno di un minSdkVersion 9 e volevo avere ActionBarSherlock ma mi è stato sempre lo stesso errore della actionBar richiede minSdkVersion 11.
A quanto pare in ADT 21.1 fare un values-v11/styles.xml e mettere la actionBar in là.