解决底部Button遮挡ListView最后一项内容的bug

项目中ListView和Button经常是一起使用的,用ListView来展示数据,用Button来提交修改的数据或对修改的数据进行确定操作。

假如使用线性布局的话ListView会盖住整个Button,使用相对布局来操作,然后Button按钮再使用android:layout_alignParentBottom="true"

让再底部显示,这样显示是没有问题的,但是如果ListView数据过多,当ListView翻到底部的时候会发现Button会遮挡最后一个item的内容,如下图:

你会发现,“你好19”所在的item被遮挡住了。下面就讲下解决这个问题的方法,总体思路是这样的:获得底部Button的高度,再让ListView的marginBottom等于这个高度。

list = (ListView) findViewById(R.id.list);
        Button btn=(Button)findViewById(R.id.btn);
        int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
        int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
        btn.measure(w, h);
        int height =btn.getMeasuredHeight(); 

        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        lp.setMargins(0, 0, 0, height);
        list.setLayoutParams(lp);

最后结果如下图:

时间: 2024-10-08 09:45:24

解决底部Button遮挡ListView最后一项内容的bug的相关文章

Android疑惑篇------------含有button按钮的ListView中,列表项无法获取焦点的问题

问题描述: 有过在ListView的列表项中添加按钮的朋友对这个问题一定不会陌生,我们的Demo在运行时,会出现这样的情况----------可以获取到列表项中的按钮点击事件,但是当我们想要获取整个列表项的点击事件时,就会发现此时点击列表项是没有任何反应的.为什么呢? 原因就是当在ListView中加入Button这类的有 “点击” 事件的widget时,ListView的itemclick事件将会被其它widget的click事件屏蔽,从而无法触发. 我们先来看一下列表项的XML文件 <?xm

解决ScrollView下嵌套ListView或Gridview进页面不在顶部的问题

最近项目用到了scrollview内部嵌套ListView或Gridview,本来这样做不太好,但是接口不提供网页资源,只有自己一个一个View的拼凑了,苦逼的程序猿,大家都懂的, 但是写好后发现一个问题,每次进入这个页面后,scrollview不是显示在顶部,而是底部或者中间,令老夫很是惆怅啊,经过千百度万谷歌,终于试出了一个方法,可以解决这个问题,但是也不是完美解决,偶尔也会没效果的,代码如下: scrollview.smoothScrollTo(0,0); 在listview绘制好数据后使

LinearLayout详解四:彻底解决软键盘遮挡输入框的问题

之前把预备知识都介绍完了,话说学以致用,接下来我们要通过重载LinearLayout类来解决软键盘覆盖的问题. 首先阐述一下这个问题,如下图所示: 然后看挡住输入框的情况 然后我们给出xml的源代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:lay

解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题

在一个滑动控件或者是布局里面,添加另外一个可以滑动的控件,通常会造成一些莫名其妙的问题.今天主要介绍在工作中遇到的,在ScrollView布局中嵌套Listview显示不正常,和在Listview中嵌套Listview的滑动冲突的问题. 1.ScrollView布局中嵌套Listview显示不正常的解决方案 目前来说,解决这个问题有好几种解决方案,这里只介绍其中两种比较简单易行的其中两种. (1)自定义一个Listview,继承自Listview,代码如下: public class ListV

解决Android中RadioButton图片和文本居中及底部经常被工具烂覆盖掉内容

1.图片和文本居中,只需要如下设置即可 <RadioButton android:id="@+id/myid" style="@style/tab_bottom" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1" android:background=&qu

解决ScrollView下嵌套ListView、GridView显示不全的问题(冲突)

原文地址:http://blog.csdn.net/cs_li1126/article/details/12906203 一.使用网上用的动态改变listview高度的方法,该方法只适用于item布局是LinearLayout布局的情况,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常.所以使用限制较大. [java] view plaincopy public class Utility { publ

解决在Azure SharePoint 2013 “在为项或数据源“FirstRSDS.rsds”加载模型时出现错误。请确认连接信息正确并且您有权访问该数据源。”

解决在Azure SharePoint 2013  "在为项或数据源"FirstRSDS.rsds"加载模型时出现错误.请确认连接信息正确并且您有权访问该数据源." 错误抓图如下 错误描述 <detail><ErrorCode xmlns="http://www.microsoft.com/sql/reportingservices">rsCannotRetrieveModel</ErrorCode><H

优化网站该丰富的10项内容

一个网站想要成功优化,在搜索引擎里排名靠前,就必须具备以下这10项内容. 1.对于时效性内容的及时更新 时效效的内容,要的就是要快人一步,先人一招.时效性内容是指在特定的某段时间内具有最高价值的内容,时效性内容越来越被营销者们所重视,并且逐 渐加以利用使其效益最大化,营销者利用时效性创造有价值的内容展现给用户. 时效性内容,在某一特定时间段内,其关键词的价值可以发挥到最大,那你的网站,会因为这一个热点,而得到更多流量,同时对于网站品牌的建设,是重 要的一个环节.所发生的事和物都具备一定的时效性,

网站优化排名必不可少的10项内容

一个网站想要成功优化,在搜索引擎里排名靠前,就必须具备以下这10项内容. 1.对于时效性内容的及时更新 时效效的内容,要的就是要快人一步,先人一招.时效性内容是指在特定的某段时间内具有最高价值的内容,时效性内容越来越被营销者们所重视,并且逐 渐加以利用使其效益最大化,营销者利用时效性创造有价值的内容展现给用户. 时效性内容,在某一特定时间段内,其关键词的价值可以发挥到最大,那你的网站,会因为这一个热点,而得到更多流量,同时对于网站品牌的建设,是重 要的一个环节.所发生的事和物都具备一定的时效性,