判断最后listView中最后一个item是否完全显示出来

 /**
     * 判断最后listView中最后一个item是否完全显示出来
     * listView 是集合的那个ListView
     * @return true完全显示出来,否则false
     */

    protected boolean isLastItemVisible() {
        final Adapter adapter1 = listView.getAdapter();

        if (null == adapter || adapter.isEmpty()) {
            return true;
        }

        final int lastItemPosition = adapter.getCount() - 1;
        final int lastVisiblePosition = listView.getLastVisiblePosition();

        /**
         * This check should really just be: lastVisiblePosition == lastItemPosition, but ListView
         * internally uses a FooterView which messes the positions up. For me we‘ll just subtract
         * one to account for it and rely on the inner condition which checks getBottom().
         */
        if (lastVisiblePosition >= lastItemPosition - 1) {
            final int childIndex = lastVisiblePosition - listView.getFirstVisiblePosition();
            final int childCount = listView.getChildCount();
            final int index = Math.min(childIndex, childCount - 1);
            final View lastVisibleChild = listView.getChildAt(index);
            if (lastVisibleChild != null) {
                return lastVisibleChild.getBottom() <= listView.getBottom();
            }
        }

        return false;
    }
时间: 2024-12-11 05:53:46

判断最后listView中最后一个item是否完全显示出来的相关文章

Android的ListView的每一个Item都有不同的布局

大家都知道,ListView中的数据是经过adapter适配到屏幕上的,所以要实现listview中每一个item的内容需要去操作adapter中的代码: 在使用不同布局的时候我们要重构以下两个方法:getItemViewType和getViewTypeCount. public class MyAdapter extends BaseAdapter { ArrayList<String> ls; Context mContext; LinearLayout linearLayout = nu

listview当选中某一个item时设置背景色其他的不变

listview当选中某一个item时设置背景色其他的不变: 可以使用listview.setOnFoucsChangeListener(listener) ; /** * listview获得焦点和失去焦点时背景颜色的变化 * @author long * */ private class MyOnFocusChangeListener implements OnFocusChangeListener{ @Override public void onFocusChange(View v, b

解决“listView点击一个Item,另外几个Item也跟着改变”的问题

如图所示: 我点击Item,右边的checkBox就会相应的变化,但是当我第一次做的时候,点击第一个Item,右边的checkBox变为绿色,但是当我listView往下拉的时候,发现下面也有是绿色的checkBox,很显然我是没有点击下面的.那么这个问题应该怎么解决呢,下面是我解决的方法: 首先是Item的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=

怎样获得listview的第一个item?

============问题描述============ 想对一个listview的第一行高亮显示. 用listview.getchildat(0)是可以,但是当数据较多时,下一页的第一行也被高亮了,求解决! ============解决方案1============ 对List的Adapter经行定制 ============解决方案2============ 引用 4 楼 jjack7 的回复: Quote: 引用 1 楼 youmingdot 的回复: 对List的Adapter经行定制

android listView 的最后一个item显示(菜鸟新手,老鸟勿喷)

问题:一个listView显示不满全屏时,最后一个item会自动占满剩下的屏幕高度,而我们需要看到的是每个item布局所要占的高度一样. 解决办法:主要是把ListView布局里面的高度设置为:android:layout_height="fill_parent" : listView显示的每个item就占同样的高度了.

判断ListView的每一个item高度

前提 这个item的根view必须是LinearLayout package com.bxg.news.view; import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import android.widget.ListView; public class Utility { public static void setListViewHeightBasedOnCh

如何在QML应用中得到一个Item的所有属性,信号及方法

Item是QML语言中最基本的元素.有时为了方便,我们可以列出它里面的所有的属性,信号及方法.我们可以通过这个方法来修改我们的属性等.在QML语言中,所有的可视的控件都是继承于Item的. 下面我们来通过一个例子来展示如何这么做.我们可以设计一个简单的QML应用如下: import QtQuick 2.0 import Ubuntu.Components 1.1 /*! \brief MainView with a Label and Button elements. */ MainView {

简单的ListView中item图片异步加载

前言: 在android开发当中,从目标地址获取图片往往都是采用异步加载的方法.当完全加载完图片后在进行显示,也有些是直接将加载的图片一点一点的显示出来. 这两个区别只是对流的处理不同而已.现在就讲讲当图片被完全获取到后在显示的方法. 一,效果图:       初始化:                                                   获取后:                         1.1,效果思路: 初始化的时候默认ImageView显示一张白色的图

UWP: ListView 中与滚动有关的两个需求的实现

在 App 的开发过程中,ListView 控件是比较常用的控件之一.掌握它的用法,能帮助我们在一定程度上提高开发效率.本文将会介绍 ListView 的一种用法--获取并设置 ListView 的滚动位置,以及获取滚动位置处的项目.这里多说一句,由于这个描述有点,所以本文的标题实在不好起. 举个例子,如果你正在开发的应用有这样一个需求,当用户从一个列表页(包括 ListView 控件)返回到前一页面时,你需要得到用户在浏览 ListView 中的内容到哪个位置以及哪一项了,以便告诉用户最近浏览