2

Androidアプリケーションを開発しているときに、Androidの下位バージョンでAPIを強化する方法を使用したいですか?以下はListViewのメソッドです

public void smoothScrollToPosition(int position)  Since API Level 8,

しかし、私はこのメソッドをより低いAndroidバージョン、たとえばAPI5で使用したいと思います。ありがとうございました

4

2 に答える 2

5

基本的にはできません。ただし、上位バージョンで使用して、古いバージョンのコードに下位互換性を提供することができます。

@TargetApi(Build.VERSION_CODES.FROYO)
private void allowSmoothScrollIfSupported() {
    if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO ) {
        list.smoothScrollToPosition(position)
    } else {
        list.scrollToPosition(position)
    }
}

このメソッドは、APIバージョン8以降でのみ実行され、以下ではクラッシュしません。古いAPIでフォールバックします(scrollToPosition)。

そしてあなたの中であなたAndroidManifest.xmlはあなたのターゲットが最新のAPIであることを示すことができますが、5以上からそれらすべてをサポートします:

 <uses-sdk
        android:minSdkVersion="5"
        android:targetSdkVersion="17" />
于 2013-01-07T06:58:00.067 に答える
0

@snicolasのソリューションの代わりに、リフレクションを使用できます。

    try {       
        Method smoothScrollToPositionMethod = ListView.class.getMethod("smoothScrollToPosition", int.class);
        smoothScrollToPositionMethod.invoke(list, position);
    } catch (NoSuchMethodException e) {
         list.scrollToPosition(position)
    }
于 2013-01-07T08:29:56.187 に答える