[英]Android listview imageview in listitem gets hidden on scroll
[英]Minimum scroll amount when programmatically selecting ListItem in android ListView
引用這個問題: android listview中的滾動如何工作?
從狀態2更改為狀態3時,單擊的列表項的大小會增加,以顯示更多信息。 如果單擊的項目是屏幕上的最后一個項目,則擴展的Listitem不會完全可見,因為新內容在屏幕底部流出。
我的當前解決方案是,如果單擊了最后一個可見的列表項,則調用“ setSelection(index)”。 結果是將選擇帶到屏幕頂部。 這很煩人,因為列表項從下到上移動。
有辦法避免這種情況嗎? 這意味着,有什么要讓listview知道的,即應該只滾動最小數量的像素,以便clickeditem完全可見嗎? 還是我自己編程此功能?
將自定義OnItemClickListener添加到ListView。 像這樣實現OnItemClickListener.onItemClick:
public void onItemClick(final AdapterView<?> parent, final View view,
int position, long id) {
View hiddenContent = view.findViewById(R.id.hiddenContent);
hiddenContent.setVisibility(View.VISIBLE);
// At this point the layout hasn't be redone and you don't have reliable
// measurements on the view. It would be nice to do something after the view
// has gone through another layout
view.post(new Runnable() {
public void run() {
Rect r = new Rect();
view.getDrawingRect(r);
parent.requestChildRectangleOnScreen(view, r, false);
}
});
}
每當您單擊列表項以顯示隱藏的內容時,ListView控件都會繼續進行,並且需要進行任何滾動(如果不需要滾動,則無需滾動)以完全顯示該行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.