画面からスクロールするListViewに多くの要素があります。
ビューの最後に空白が欲しいです。つまり、ユーザーは、最後の要素がビューポートの中央にくるように、最後の要素を越えてスクロールできる必要があります。
OverScrollerを使用することもできますが、それでは、iPhone でよく見られるように View が弾む効果しか得られないと思います。
私が見落としている可能性のあるものはありますか?
ボタンまでスクロールした画面は次のようになります。
画面からスクロールするListViewに多くの要素があります。
ビューの最後に空白が欲しいです。つまり、ユーザーは、最後の要素がビューポートの中央にくるように、最後の要素を越えてスクロールできる必要があります。
OverScrollerを使用することもできますが、それでは、iPhone でよく見られるように View が弾む効果しか得られないと思います。
私が見落としている可能性のあるものはありますか?
ボタンまでスクロールした画面は次のようになります。
受け入れられた答えは複雑すぎるため、 addFooterView はこの種のものではありません。適切で簡単な方法は、paddingTop と paddingBottom を設定することです。clipToPadding を「false」に設定する必要があります。リスト ビューまたはグリッド ビューで、次を追加します。
android:paddingTop="100dp"
android:paddingBottom="100dp"
android:clipToPadding="false"
指のスクロールで移動する上部と下部に空白スペースができます。
addFooterView()
メソッドを使用して、そのビューをリストの一番下に追加します ( もありますaddHeaderView()
) 。画面の高さを測定するコード
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int screenHeight = display.getHeight();
画面の半分の高さを設定するコード:
View layout = inflater.inflate(R.layout.mylistviewfooter, container, false);
ViewGroup.LayoutParams lp = layout.getLayoutParams();
lp.height = screenHeight/2;
layout.setLayoutParams(lp);
myListView.addFooterView(layout);
余談: リストビューにフッターまたはヘッダー ビューを追加する場合は、アダプターを追加する前に行う必要があります。また、これを行った後にアダプタークラスを取得する必要がある場合は、リストビューのアダプターを呼び出すと、 getWrappedAdapterメソッドを呼び出す必要があるHeaderViewListAdaptergetAdapter()
のインスタンスが返されることを知っておく必要があります。
MyAdapterClassInstance myAdapter = (MyAdapterClassInstance) ((HeaderViewListAdapter) myListView.getAdapter()).getWrappedAdapter();
以下を試してください。
View footer = new View(getActivity());
footer.setLayoutParams( new AbsListView.LayoutParams( LayoutParams.FILL_PARENT, 100 ));
// 100 is the height, you can change it.
mListView.addFooterView(footer, null, false);