リスト ビューのスクロールバーをカスタマイズできますか???????
a) サムはクリックおよびドラッグ可能である必要があります。
b) リスト ビューを上下にスライドさせるボタンを両側に配置する必要があります。
c) スクロールバーのトラックを広くする必要があります。
ありがとうございました。
リスト ビューのスクロールバーをカスタマイズできますか???????
a) サムはクリックおよびドラッグ可能である必要があります。
b) リスト ビューを上下にスライドさせるボタンを両側に配置する必要があります。
c) スクロールバーのトラックを広くする必要があります。
ありがとうございました。
以下のように、ListView で OnScrollListener を使用し、VerticalSeekbar で OnTouchListener を使用して、この問題を解決しました。
mListView.setOnScrollListener(this);
mScrollbar.setOnTouchListener(this);
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
mCurrentPosition = firstVisibleItem;
if (totalItemCount - visibleItemCount > 0) {
int progress = mScrollbar.getMax() * firstVisibleItem
/ (totalItemCount - visibleItemCount);
mScrollbar.setProgress(progress);
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
Adapter adapter = mListView.getAdapter();
if (adapter == null) {
return false;
}
if (adapter instanceof HeaderViewListAdapter) {
adapter = ((HeaderViewListAdapter) adapter).getWrappedAdapter();
}
int itemCount = adapter.getCount();
if (itemCount == 0)
return false;
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
scroll(event.getY());
return true;
case MotionEvent.ACTION_MOVE:
scroll(event.getY());
return true;
case MotionEvent.ACTION_UP:
scroll(event.getY());
return true;
default:
return false;
}
}
private void scroll(float height) {
mItemCount = mListView.getAdapter().getCount();
int scrollHeight = mScrollbar.getHeight();
Log.e(TAG, "Scrollbar height: " + scrollHeight);
int position = (int) ((height / mScrollbar.getHeight()) * mItemCount);
Log.e(TAG, "Position scroll: " + position);
if (position < 0)
position = 0;
else if (position >= mItemCount)
position = mItemCount - 1;
mListView.setSelection(position);
}
スクロールバーをカスタマイズするには、以下のスタイルを使用できます。このスタイルをスクロールバーに適用します。
<style name="your_style_name">
<item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
<item name="android:scrollbarStyle">outsideOverlay</item>
<item name="android:scrollbars">vertical</item>
<item name="android:fadeScrollbars">false</item>
<item name="android:scrollbarThumbVertical">@drawable/scroller_image</item>
scroller_image はスクローラー サムのイメージです。上下のボタンを追加する場合は、Scrollview の上下に 2 つのボタンを配置できます。また、ボタンのクリック時にスクロール バーをプログラムでスクロールします。そのために、次のコードを使用できます。
scrollview.scrollTo(5, 10);