egi*_*112 1 android listview gridview
如果我没有将OnScrollListener设置为如下所示,则在滚动到列表底部然后向上滚动后,ListView中的顶视图会被切断.
如下设置OnScrollListener似乎可行,但这似乎很奇怪,这是必需的.我希望Google能够修复此问题,而无需设置此监听器.有任何想法吗?
mListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (firstVisibleItem == 0 && visibleItemCount > 0 && absListView.getChildAt(0).getTop() >= 0) {
mSwipeToRefreshLayout.setEnabled(true);
} else {
mSwipeToRefreshLayout.setEnabled(false);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的情况,并且重写canChildScrollUp方法为我修复了它.当您使用SwipeRefreshLayout包含a ListView或GridViewid 时,只需使用以下内容即可android.R.id.list.
import android.content.Context;
import android.support.v4.widget.SwipeRefreshLayout;
import android.util.AttributeSet;
/**
* Date: 09/02/2014
* @author: rax
*/
public class ScrollableSwipeRefreshLayout extends SwipeRefreshLayout {
public ScrollableSwipeRefreshLayout(Context context) {
super(context);
}
public ScrollableSwipeRefreshLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean canChildScrollUp() {
// Condition to check whether scrollview reached at the top while scrolling or not
return findViewById(android.R.id.list).canScrollVertically(-1);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1923 次 |
| 最近记录: |