软件编程
位置:首页>> 软件编程>> Android编程>> Android中GridView布局实现整体居中方法示例

Android中GridView布局实现整体居中方法示例

作者:栩杰  发布时间:2023-12-23 13:21:18 

标签:android,gridview,布局居中

前言

本文主要给大家介绍了关于Android中GridView布局整体居中的相关内容,是对于自己在项目中遇到问题的一个记录,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

效果图:

Android中GridView布局实现整体居中方法示例

示例代码:


/**
 * 对高度和宽度进行统计 然后设置gridView的宽高。
 * @param numColumns 设定行数
 * @param gridView
 */
public static void calGridViewSumWH(int numColumns ,GridView gridView) {
 // 获取GridView对应的Adapter
 ListAdapter listAdapter = gridView.getAdapter();
 if (listAdapter == null) {
  return;
 }
 int totalHeight = 0;
 int totalWidth = 0;
 for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目
  View listItem = listAdapter.getView(i, null, gridView);
  listItem.measure(0, 0); // 计算子项View 的宽高
  totalWidth = listItem.getMeasuredWidth();
  if ((i+1)%numColumns == 0) {
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    totalHeight += listItem.getMeasuredHeight() + gridView.getVerticalSpacing(); // 统计所有子项的总高度
   } else {
    totalHeight += listItem.getMeasuredHeight();
   }
  }

if ((i+1) == len && (i+1)%numColumns != 0) {
   totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度
  }
 }
 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
  totalHeight += 20;
 }
 if (listAdapter.getCount() < numColumns) {
  gridView.setNumColumns(listAdapter.getCount());
 }
 ViewGroup.LayoutParams params = gridView.getLayoutParams();
 params.height = totalHeight;
 params.width = totalWidth * listAdapter.getCount();
 gridView.setLayoutParams(params);
}

使用时相对于父布局,应该是居中的

例: RelativeLayout android:layout_centerHorizontal="true"

来源:http://www.jianshu.com/p/743b76293b80

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com