Android 向下滚动列表视图时显示按钮

Android 向下滚动列表视图时显示按钮,android,listview,Android,Listview,我在屏幕底部添加了一个按钮。这是一个“转到顶部”按钮。 我想在用户位于列表顶部(即第一行)时将其隐藏,并在向下滚动到第二行之后显示它 我可以将onscroll listner添加到ListView。但我不知道如何检查行数 有人能举例说明如何实现它吗?您可以使用setOnScrollListener 设置每次列表滚动时接收通知的侦听器 示例代码 listview.setOnScrollListener(new AbsListView.OnScrollListener() { @O

我在屏幕底部添加了一个
按钮
。这是一个“转到顶部”按钮。 我想在用户位于列表顶部(即第一行)时将其隐藏,并在向下滚动到第二行之后显示它

我可以将onscroll listner添加到ListView。但我不知道如何检查行数


有人能举例说明如何实现它吗?

您可以使用setOnScrollListener

设置每次列表滚动时接收通知的侦听器

示例代码

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) {

            // add here your logic like this
            int lastItem = firstVisibleItem + visibleItemCount;
            if (firstVisibleItem < 2) {

                fab.setVisibility(View.INVISIBLE);
            }else {
                fab.setVisibility(View.VISIBLE);
            }
        }
    });
listview.setOnScrollListener(新的AbsListView.OnScrollListener(){
@凌驾
公共无效onScrollStateChanged(AbsListView视图,int scrollState){
}
@凌驾
public void onScroll(AbsListView视图、int firstVisibleItem、int visibleItemCount、int totalItemCount){
//把你的逻辑加在这里
int lastItem=firstVisibleItem+visibleItemCount;
如果(第一个可见项<2){
工厂设置可见性(视图不可见);
}否则{
工厂设置可见性(视图可见);
}
}
});

您可以尝试类似的方法


你可以试试这样的谢谢。稍微改变一下就可以了<代码>如果(firstVisibleItem<2)谢谢。
private int preLast;
// Initialization stuff.
yourListView.setOnScrollListener(this);

// ... ... ...

@Override
public void onScroll(AbsListView lw, final int firstVisibleItem,
        final int visibleItemCount, final int totalItemCount)
{

    switch(lw.getId()) 
    {
        case R.id.your_list_id:     

            // Make your calculation stuff here. You have all your
            // needed info from the parameters of this function.

            // Sample calculation to determine if the last 
            // item is fully visible.
            final int lastItem = firstVisibleItem + visibleItemCount;

            if(lastItem == totalItemCount)
            {
                if(preLast!=lastItem)
                {
                    //to avoid multiple calls for last item
                    Log.d("Last", "Last");
                    preLast = lastItem;
                }
            }
    }
}