項目中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);
最后結果如下圖: