0

ActionBarSherlock バージョン 4.1.0.0 をダウンロードし、Win7 Java 1.6 update 24 マシンの Eclipse 4.2 に Android プロジェクト ライブラリを追加しました。Project | Android 4.1 の Eclipse プロジェクト ビルド ターゲットを使用しました。プロパティ | プロジェクトのビルド ターゲット。minSdkVersion="7" を持つ既存のアプリに ActionBar 機能を組み込みたいと考えています。ActionBarSherlock ライブラリのコードには、非推奨のメソッドとエラーが含まれているようです。

例 1: ActionBarContainer.java、ActionBarContextView.java、ScrollingTabContainerView.java - setBackgroundDrawable を使用 - タイプ View のメソッド setBackgroundDrawable(Drawable) は非推奨

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);
}

クイック フィックスは、ActionBarContainer に @SupressWarnings 'deprecation' を追加すると表示されます

例 2: IcsProgressBar.java は、非推奨として表示される animationResolution を使用します。上記と同じクイック フィックスです。

private static final int[] ProgressBar = new int[] {
    ...
    android.R.attr.animationResolution

また、ActivityChooserView.java にエラーがあります。

private static class SetActivated {
    public static void invoke(View view, boolean activated) {
        view.setActivated(activated);
    }
}

エラーは SetActivated にあります - 呼び出しには API 11 が必要です (現在の最小値は 7)。これは、マニフェストに基づいて理にかなっています。

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>

Action Bar Sherlock は Andriod 2.x で動作するはずなので、API 7 で問題ないのでしょうか? 他の人がこれを経験したことがありますか? もしそうなら、推奨されるアクションは何ですか? 非推奨を抑制/無視しますか? SetActivated のエラーはどうですか? readme を確認し、ネット検索をいくつか行いましたが、これについては何も思いつきませんでした。提案をありがとう。

ありがとう!

4

2 に答える 2

3

大丈夫です。コードは 2.xと互換性があり、一部のメソッドは4.x の時点で廃止されていますが、まだ存在しています。また、4.x でこれらの非推奨のメソッドが使用されるという意味でもありません。ソースは 2.x-4.x であるため、他に方法はありません (リフレクションは言うまでもありませんが、パフォーマンスが低下するため、今のところ必要ありません)。したがって、これを無視しても安全です。特定のファイルの減価償却をオフにする方がおそらく良いでしょうが、そこにはありません。だから心配しないで。

于 2012-09-29T19:23:03.063 に答える
0

これは実際には質問に答えるものではありませんが、minSdkVersion 9 が必要で、ActionBarSherlock が必要なときに同じ問題に遭遇しましたが、actionBar には minSdkVersion 11 が必要であるという同じエラーが発生していました。

どうやら ADT 21.1 では、values-v11/styles.xml を作成し、そこに actionBar を配置します。

https://code.google.com/p/android/issues/detail?id=48283

于 2013-02-24T09:04:44.280 に答える