当前位置: 代码迷 >> 综合 >> Android GirdView/Listview 最后一行显示不完整
  详细解决方案

Android GirdView/Listview 最后一行显示不完整

热度:20   发布时间:2024-01-21 02:59:25.0

  今天在工作的时候碰到了一个问题,是Android GirdView/Listview 最后一行显示不完整,即显示了一半

分析:利用Android device monitor查看并没有出现异常,在该控件的布局文件中,是嵌在fragment下的,因为引用了
toolbar替代了Actionbar,占据了一分部原有的空间位置,将toolbar隐藏,发现可以显示完整列表
解决:在列表控件上加上一句android:layout_marginBottom="?android:attr/actionBarSize" //设置距离底部高度和toolbar一样高
扩展:网上推荐http://www.tuicool.com/articles/NRnE3q 个人认为在这边不适用,可能是使用其他现象导致的。


补充:Java代码上的修改

ListView listView = getListView();
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) listView.getLayoutParams();
int h = updateListViewLayout();
lp.setMargins(0, 0, 0, h);
listView.setLayoutParams(lp);
if(listView != null){
listView.setSelector(new ColorDrawable(Color.TRANSPARENT));
listView.setDividerHeight(0);
listView.setDivider(null);
}


private int updateListViewLayout() {
TypedValue typedValue = new TypedValue();
mActivity.getTheme().resolveAttribute(android.R.attr.actionBarSize, typedValue, true);
int[] attribute = new int[] { android.R.attr.actionBarSize };
TypedArray array = mActivity.obtainStyledAttributes(typedValue.resourceId, attribute);
int Size = array.getDimensionPixelSize(0 /* index */, -1 /* default size */);
array.recycle();
return Size;
}

  相关解决方案