سؤال

لقد قمت بتنزيل الإصدار 4.1.0.0 من ActionBarSherlock، وأضفت مكتبة Android Project إلى Eclipse 4.2 على جهاز Win7 java 1.6 Update 24.لقد استخدمت هدف بناء مشروع Eclipse لنظام Android 4.1 في المشروع | الخصائص | مشروع بناء الهدف.أرغب في دمج وظيفة ActionBar في تطبيق موجود يحتوي على minSdkVersion = "7".لقد لاحظت أن الكود من مكتبة ActionBarSherlock يبدو أنه يحتوي على بعض الأساليب المهملة، ويوجد خطأ:

مثال 1:ActionBarContainer.java، ActionBarContextView.java، ScrollingTabContainerView.java - يستخدم setBackgroundDrawable - تم إهمال الطريقة 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);
}

يظهر الإصلاح السريع كإضافة "إهمال" @SupressWarnings لـ ActionBarContainer

مثال 2:يستخدم IcsProgressBar.java الرسوم المتحركة التي تظهر على أنها مهملة، وهو نفس الإصلاح السريع الموضح أعلاه

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"/>

ألا ينبغي أن يكون API 7 جيدًا، حيث يجب أن يعمل Action Bar Sherlock على Andriod 2.x؟هل واجه الآخرون ذلك، وإذا كان الأمر كذلك، ما هو الإجراء الموصى به؟قمع/تجاهل الإهمال؟ماذا عن الخطأ في SetActivated؟لقد قمت بمراجعة الملف التمهيدي وقمت ببعض عمليات البحث على شبكة الإنترنت ولكن لم أتوصل إلى أي شيء في هذا الشأن.شكرا على أي اقتراحات.

شكرًا!

هل كانت مفيدة؟

المحلول

إنه على ما يرام.الرمز هو 2.x متناسق وحتى يتم إهمال بعض الأساليب اعتبارًا من 4.x, ، ما زالوا هناك.وهذا لا يعني أيضًا أنه سيتم استخدام هذه الأساليب المهملة في الإصدار 4.x.المصدر هو 2.x-4.x لذا لا توجد طريقة أخرى (ناهيك عن الانعكاس، لكن هذا سيضر بالأداء، وهو ليس ضروريًا في الوقت الحالي).لذلك من الآمن تجاهل هذا.ربما يكون من الأفضل إيقاف تشغيل الإهلاك لملفات معينة ولكنه غير موجود.لذلك لا تقلق.

نصائح أخرى

هذا لا يجيب حقا على السؤال، لكنني ركضت في نفس المشكلة عندما كان علي الحصول على MinsDKVersion 9 وأردت أن يكون لديك ActionBarSherlock لكني كنت أحصل على نفس الخطأ الخاص ب ActionBar يتطلب MinsDKVersion 11.

على ما يبدو في ADT 21.1 يمكنك إجراء قيم-v11 / Styles.xml ووضع ActionBar في هناك.

href="https://code.google.com/p/android/issues/detail؟id=48283" rel="nofollow"> https://code.google.com/p/android/القضايا / التفاصيل؟ معرف= 48283

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top