我有一個列表視圖多行的長度可能會超過智能手機屏幕的大小。我想確定用戶知道他必須不斷滾動查看列表的所有條目。如何在列表視圖中顯示「向下」提示箭頭?
這樣來到我的腦海裏的第一件事是在屏幕(或只是爲了讓列表視圖煥發的底部),直到用戶開始向下滾動的底部顯示一個模糊和發光的箭頭。如何顯示箭頭並設置其行爲?
感謝。
我有一個列表視圖多行的長度可能會超過智能手機屏幕的大小。我想確定用戶知道他必須不斷滾動查看列表的所有條目。如何在列表視圖中顯示「向下」提示箭頭?
這樣來到我的腦海裏的第一件事是在屏幕(或只是爲了讓列表視圖煥發的底部),直到用戶開始向下滾動的底部顯示一個模糊和發光的箭頭。如何顯示箭頭並設置其行爲?
感謝。
您可以顯示固定在視圖底部的ImageView
。如果你願意的話,你可以設置一個模糊的drawable。
添加到您的layout.xml:
<ImageView
android:id="@+id/img_arrow"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true" />
然後在你的代碼,你檢查的時候,如果最後一個項目已經繪滾動列表。
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if(totalItemCount != listView.getLastVisiblePosition() + 1){
imageView.setVisible(View.GONE);
}else{
imageView.setVisible(View.VISIBLE);
}
}
});
此外,以決定是否顯示您的按鈕,或者不是你可以在列表視圖設置滾動監聽器,然後調用list.canScrollVertically(-1)。如果返回的值是真的,則可以顯示按鈕。如果它是假的,這意味着用戶可以在不滾動的情況下看到所有內容,並且不需要顯示按鈕。
試試這個代碼:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
int position = mLayoutManager.findFirstVisibleItemPosition();
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
if (position == 0) {
imageViewDownArrow.setVisibility(View.VISIBLE);
} else {
imageViewDownArrow.setVisibility(View.GONE);
}
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
}
});
請記住OP不使用recyclerView,他應該但他正在使用listView –
我並不需要一個按鈕,向下滾動! (用戶將滾動,就像listview自動執行一樣。)我只是想在列表視圖上顯示一個「提示」,以確保用戶收到消息「嘿,男士,名單還沒有結束!」 – Robb1
好吧,那麼你將不得不檢查,如果最後一個項目已經繪製。將更新我的回答 –
@ Robb1我更新 –