私はLinearLayout
にいくつかの他のビューを含み、その中にListView
が含まれています。 このビューは、ボタンをクリックして別のビューからロードされます。Android ListView scrollTo
このボタンは、ListView内のどの要素をリスト内で最初に表示する必要があるかを何らかの方法で指定します。リストに入力される要素は、外部サーバーからHTTP経由で取得されます。
問題は、N番目の要素がリストの最初の要素になることです。 私はそれを現在の位置から新しい位置に移動したくないので、リストをスクロールします。
私はsetSelected()
とscrollTo(x,y)
とscrollBy(x,y)
で試しましたが、運はありません。
私もそれが醜いなどとして、コードのこのPICEしようとしましたが、私はちょうどそれが働いていたfを試してみたかった:
ListView categoryList = (ListView)findViewById(R.id.category_list);
categoryList.post(new Runnable() {
@Override
public void run() {
Log.d(this.getClass().getName(), "CategoryActivity.scrollToIndex: " + CategoryActivity.scrollToIndex);
if(CategoryActivity.scrollToIndex>0){
ListView categoryList = (ListView)findViewById(R.id.category_list);
categoryList.setScrollContainer(true);
categoryList.scrollTo(4, CategoryActivity.scrollToIndex * 50);
categoryList.requestLayout();
}
}
});
そして、これは私にいくつかの成功が、リストビューを与えましたその後、私は説明することさえできないように、クレイジーのように振る舞いました。
何か考えですか?
これはうまくいきました。 – 0m4r
私もsetSelectedで試してみましたが、うまくいきました。だから私は私の問題に対する解決策を見つけました!私が明確に理解していないことは、なぜこれが機能するのかです:/ – 0m4r