独自のオーバースクロール機能を実装できるように、リストビューでオーバースクロールを完全に無効にする必要があります。
overscroll
モードをOVERSCROLL_NEVERに設定するだけで、コアリストビュークラスを見ると十分に単純なようです。私のサムスンギャラクシーs2でこの素晴らしい作品。しかし、動作しませんGalaxy Tab 2.3.3.
誰かが私を助けることができるサムスンのListViewのカスタマイズについて多くの経験を持っていますか?
独自のオーバースクロール機能を実装できるように、リストビューでオーバースクロールを完全に無効にする必要があります。
overscroll
モードをOVERSCROLL_NEVERに設定するだけで、コアリストビュークラスを見ると十分に単純なようです。私のサムスンギャラクシーs2でこの素晴らしい作品。しかし、動作しませんGalaxy Tab 2.3.3.
誰かが私を助けることができるサムスンのListViewのカスタマイズについて多くの経験を持っていますか?
それはSamsungGalaxyTab(Android 2.2を使用)で機能しました:
try {
// list you want to disable overscroll
// replace 'R.id.services' with your list id
ListView listView = ((ListView)findViewById(R.id.services));
// find the method
Method setEnableExcessScroll =
listView.getClass().getMethod("setEnableExcessScroll", Boolean.TYPE);
// call the method with parameter set to false
setEnableExcessScroll.invoke(listView, Boolean.valueOf(false));
}
catch (SecurityException e) {}
catch (NoSuchMethodException e) {}
catch (IllegalArgumentException e) {}
catch (IllegalAccessException e) {}
catch (InvocationTargetException e) {}
リストビューの高さを固定値に設定する必要があります。コンテンツが動的にある場合は、アダプターをリセットした後に実際のリストサイズを測定するための優れた機能があります。
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
listView.requestLayout();
}
アダプタを設定した後、listviewをパラメータとしてこの静的メソッドを呼び出す必要があります。これで、スクロールビューを追加できます(リストビューと他のビューが内部にあります)。以前の2.3.3でのこの動作は小さなバグだと思います...私が説明した方法を除いて、スクロールビュー内にリストビューを含める簡単な方法はありません。そのため、彼らはOVERSCROLL_NEVERモードを導入しました:)
コードはDougWからのものです!
私の解決策ではありませんが、私のために働きます:)