2013-09-04 19 views
5

ボタンを押してリストビューをスクロールしたいとします。 2つのボタンを上下に使用しています。ボタンを押すとリストビューが1行上に移動し、ボタンを押すとリストビューが1行下に移動します。ボタンを使用したリストビューのスクロール

私のリストビューはthisリンクに基づいています。スクロールビューhereの良い例が見つかりました。今私の質問はscrollviewの代わりに私は私のlistviewを使用する必要があり、それは1行で増減する必要があります。アンドロイドの新機能は、この問題を解決するのに役立ちます。前もって感謝します。

+0

チェック[この](http://stackoverflow.com/questions/17205017/android-listview-thumb-scrollbar/17206022#17206022)Androidはデフォルトのスクロールバーを提供リストビュー。 – sarabu

+3

決して、決してスクロールビュー内でListViewをネストしないでください! – Skynet

+0

私はscrollviewの中でリストビューを必要としません。何を求めているのかは、ボタンをクリックして上下に移動するためにリストビューが必要な例です。 – AndroidOptimist

答えて

3

をあなたは、次のいずれかを試すことができます。

直接スクロールの場合:スムーズスクロール用

getListView().setSelection(int); 

getListView().smoothScrollToPosition(int); 

サンプルコード:

public View.OnClickListener onChk = new View.OnClickListener() { 
      public void onClick(View v) { 

       int index = list.getFirstVisiblePosition(); 
       getListView().smoothScrollToPosition(index+1); // For increment. 

} 
}); 

ただし、上部のビューの半分または一部のみが表示されている場合は、1つのケースを処理する必要があります。

+0

ボタンをクリックしてスクロールが必要です。 (つまり)ボタンを押して、そのような行を1つスクロールする必要があります..私の質問は明確ですか? – AndroidOptimist

+2

はい上記のスニペットの1つをボタンクリックリスナーの中に入れます。それでおしまい! int位置になる変数をインクリメントおよびデクリメントする必要があります。このインクリメントおよびデクリメントは、ボタンのクリックで発生します。 – Skynet

+0

返事が遅れて申し訳ありません。上記のコードをbtnとしてボタンに入れます。setOnClickListener(new View.OnClickListener(){@オーバーライドpublic void onClick(View arg0){listView.setSelection(8);}});.しかし、それは動作していない – AndroidOptimist

2

IDEの提案をチェックしたことがありますか? ;)

ListView lv = (ListView) findViewById(R.id.myListView); 

// to scroll to a given position 
lv.scrollTo(int x, int y); 

// to scroll by a given number of dp 
lv.scrollBy(int x, int y); 
+0

すべての商品は同じ高さですか?手で設定するか、手動で計算するか? – meeDamian

+0

ボタンをクリックしてスクロールするにはビューが必要です。通常、私は今リストビューをスクロールすることができます。 – AndroidOptimist

0

滑らかな持続時間を有するスクロール

getListView().smoothScrollToPositionFromTop(position,offset,duration); 

パラメータ 位置 - >

にスクロールする位置は図の上部からの位置の画素における---->所望の距離をオフセットスクロールが終了したとき

時間 - >スクロールに使用するミリ秒数

注:API 11.

関連する問題