こんにちは、
アイテムのリストを表示するリストビューがあります...すべてではありませんが、すべてそこにあります。ユーザーが上下にスクロールできるようにするのではなく、要件が要求する上下のボタン。ListViewを進める方法を除いて、すべてがうまく処理されています。リストの項目3を見ているとしましょう。ユーザーが次にヒットします...ListViewで項目4に進みます。増分/減分のために、どのページを表示しているかを内部的に追跡しています。私はこのようなものを見つけることを期待していましたが、サイコロはありませんでした。
ListView.MoveNext();
また
ListView.Move(int);
ブレイデンの提案に従って、私はここで受け入れられた解決策を試しました:リストビューに戻ったときにスクロール位置を維持/保存/復元しましたが、リストをスクロールするようには見えませんでした....つまり、最初のリストアイテムにとどまりました。setSelectionも試してみました。
これが私のコードです:
public void btn_NextClick(View vw_Current)
{
//increment page count 1
i_PageTracker ++;
//advance to next record
//int x = lstvw_LiftData.getFirstVisiblePosition();
View v = lstvw_LiftData.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
lstvw_LiftData.setSelectionFromTop(i_PageTracker, top);
//lstvw_LiftData.setSelection(i_PageTracker);
}
ウラジミールの成功とその欠如に基づいて、私は無関係だと思ったいくつかの追加情報を提供したかったのですが...。
SimpleAedapterを拡張し、getViewをオーバーライドしました。また、TextViewにデータオブジェクトからの特定のデータを取り込むためのDataBinderもあります。
興味深いことに、DataAdapterのgetViewとロード時のバインダーのsetViewValueにブレークポイントを設定すると、必要に応じてそれらにヒットします。しかし、次のボタンがクリックされたとき、リストが次の位置に進んでいた場合に予想されるようなボタンはヒットしません。
私はそれを理解しました....しかし、私はそれについて何をすべきかわかりません。私が何をしているのかわからないのを見て、私は自分自身を撃った。リスト内のアイテムを一度に1つだけ表示したいので、ユーザーがスクロールできるようにしたくありません。それを達成するために私がしたことは、DataAdapterのgetCountをオーバーライドして、1を返すことでした。これは、1つのアイテムだけがクールに表示されたため、答えであると思われます。ただし、getCountをオーバーライドすると、表示する項目が1つしかないため、先に進むことはありません...先に進むものはありません。
だから私が知りたいのはこれです。ユーザーがスクロールしてナビゲーションボタンを使用するように強制できないようにするにはどうすればよいですか。スクロールイベントを処理してnullを返しますか?