3

ここに画像の説明を入力リスト ビューのスクロールバーをカスタマイズできますか???????

a) サムはクリックおよびドラッグ可能である必要があります。

b) リスト ビューを上下にスライドさせるボタンを両側に配置する必要があります。

c) スクロールバーのトラックを広くする必要があります。

ありがとうございました。

4

2 に答える 2

0

以下のように、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);
    }
于 2014-10-08T03:16:11.430 に答える
0

スクロールバーをカスタマイズするには、以下のスタイルを使用できます。このスタイルをスクロールバーに適用します。

<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);
于 2013-05-15T08:28:43.747 に答える