[英]how to scroll listview to specific position in android programmatically
[英]Android - listview - scroll programmatically to specific layout
這是我的問題:
我有一個列表視圖(帶適配器),其中每行包含多個展開的布局,我想以編程方式平滑滾動至特定布局。
范例:
這是一個listview行:
------------------
--
-布局1-
--
-布局2-
-布局3-
-等等-
------------------
我知道在Scrollview中我們可以使用布局視圖的getY(),但是當我在listview中為我的特定布局執行此操作時,它將返回我0。但是我不能使用scrollview,因為我需要獲取SwipeRefreshLayout(或者我們可以獲取它在Scrollview中?)
我希望我足夠清楚,如果不是這種情況,請告訴我。
如果要觸發類似onClick之類的操作滾動。
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
View row = listView.getChildAt(0);
View layout = row.findViewById(R.id.layout_to_scroll_to);
listView.smoothScrollToPositionFromTop(rowPositionToScrollTo, layout.getTop());
}
});
如果要觸發頁面加載滾動。 相應地,將其添加到活動或片段的onCreate或onActivityCreated中。
getListView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
listView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
View row = listView.getChildAt(0);
View layout = row.findViewById(R.id.layout_to_scroll_to);
listView.smoothScrollToPositionFromTop(rowPositionToScrollTo, layout.getTop());
}
});
對於沒有滾動動畫,將smoothScrollToPositionFromTop
更改為setSelectionFromTop
。
希望這可以幫助 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.