安卓:隐藏的RelativeLayout时的ListView向下滚动 [英] Android : Hide relativelayout when scroll down on listview
本文介绍了安卓:隐藏的RelativeLayout时的ListView向下滚动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试当用户开始在ListView向下滚动到添加RelativeLayout的。
我想再次显示的RelativeLayout当用户滚动到顶部并显示列表视图的第一个项目时。
我的code的作品,但有一点爬,当用户试图滚动。
我认为这个问题是位于listAtTop功能,但我不知道在哪里。
list.setOnDetectScrollListener(新OnDetectScrollListener(){
@覆盖
公共无效onUpScrolling(){
/* 做一点事 */
Log.d(信息,UPPPPPPPPPPP);
如果(listIsAtTop()){
RelativeLayout的relative1 =(RelativeLayout的)findViewById(R.id.relative1);
relative1.setVisibility(View.VISIBLE);
}
} @覆盖
公共无效onDownScrolling(){
/* 做一点事 */
Log.d(信息,DOWNNNNNNNN);
如果(!listIsAtTop()){
RelativeLayout的relative1 =(RelativeLayout的)findViewById(R.id.relative1);
relative1.setVisibility(View.GONE);
} }
});
私人布尔listIsAtTop(){
如果(list.getChildCount()== 0){
返回true;
}
返回list.getFirstVisiblePosition()== 0安培;&安培; (list.getChildCount()== 0 || list.getChildAt(0).getTop()== 0);
}
解决方案
试试这个方法。
list.setOnScrollListener(新OnScrollListener(){ @覆盖
公共无效onScroll(AbsListView观点,诠释firstVisibleItem,
INT visibleItemCount,诠释totalItemCount){
}
INT mPosition = 0;
INT mOffset = 0; @覆盖
公共无效onScrollStateChanged(AbsListView观点,诠释scrollState){
// TODO自动生成方法存根
INT位置= list.getFirstVisiblePosition();
视图V = list.getChildAt(0);
偏移为int =(V == NULL)? 0:v.getTop(); 如果(mPosition<仓位||(mPosition ==位置和放大器;&安培; mOffset<偏移)){
//滚动起来
//search_layout.setVisibility(View.GONE); }其他{
//向下滚动
//search_layout.setVisibility(View.VISIBLE); }
}
});
在当您滚动下跌
隐藏布局,当你卷动起来,达到上面这个code
然后可见布局
I try to add a relativelayout when the user begin to scroll down in a listview. I would like to show the relativelayout again when the user scroll to top and when first item of the listview is displayed.
My code works but there is a little "climb" when the user try to scroll. I think that the problem is located on listAtTop function but i don't know where.
list.setOnDetectScrollListener(new OnDetectScrollListener() {
@Override
public void onUpScrolling() {
/* do something */
Log.d("INFO", "UPPPPPPPPPPP");
if (listIsAtTop()) {
RelativeLayout relative1 = (RelativeLayout) findViewById(R.id.relative1);
relative1.setVisibility(View.VISIBLE);
}
}
@Override
public void onDownScrolling() {
/* do something */
Log.d("INFO", "DOWNNNNNNNN");
if (!listIsAtTop()) {
RelativeLayout relative1 = (RelativeLayout) findViewById(R.id.relative1);
relative1.setVisibility(View.GONE);
}
}
});
private boolean listIsAtTop() {
if (list.getChildCount() == 0) {
return true;
}
return list.getFirstVisiblePosition() == 0 && (list.getChildCount() == 0 || list.getChildAt(0).getTop() == 0);
}
解决方案
Try this way
list.setOnScrollListener(new OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
int mPosition=0;
int mOffset=0;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
int position = list.getFirstVisiblePosition();
View v = list.getChildAt(0);
int offset = (v == null) ? 0 : v.getTop();
if (mPosition < position || (mPosition == position && mOffset < offset)){
// Scrolled up
//search_layout.setVisibility(View.GONE);
} else {
// Scrolled down
//search_layout.setVisibility(View.VISIBLE);
}
}
});
In this code when you scroll down
hide layout and when you scroll up and reached to top
then Visible layout
这篇关于安卓:隐藏的RelativeLayout时的ListView向下滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文