Androidアプリケーションを開発しているときに、Androidの下位バージョンでAPIを強化する方法を使用したいですか?以下はListViewのメソッドです
public void smoothScrollToPosition(int position) Since API Level 8,
しかし、私はこのメソッドをより低いAndroidバージョン、たとえばAPI5で使用したいと思います。ありがとうございました
Androidアプリケーションを開発しているときに、Androidの下位バージョンでAPIを強化する方法を使用したいですか?以下はListViewのメソッドです
public void smoothScrollToPosition(int position) Since API Level 8,
しかし、私はこのメソッドをより低いAndroidバージョン、たとえばAPI5で使用したいと思います。ありがとうございました
基本的にはできません。ただし、上位バージョンで使用して、古いバージョンのコードに下位互換性を提供することができます。
@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" />
@snicolasのソリューションの代わりに、リフレクションを使用できます。
try {
Method smoothScrollToPositionMethod = ListView.class.getMethod("smoothScrollToPosition", int.class);
smoothScrollToPositionMethod.invoke(list, position);
} catch (NoSuchMethodException e) {
list.scrollToPosition(position)
}