GridView中均分中碰到的几个问题
来源:互联网 发布:手机挡字幕软件 编辑:程序博客网 时间:2024/04/26 04:00
GridView使用过程中,碰到的几个坑,在此记录一下!
删掉GridView中grid view 外margin
GridView gridView = new GridView(this); setContentView(gridView); gridView.setNumColumns(4); //set STRETCH_SPACING stretch mode gridView.setStretchMode(GridView.STRETCH_COLUMN_WIDTH); //见下文“运行Demo,需要的其他部分” SimpleAdapter adapter = new SimpleAdapter(this); List<String> beanList = new ArrayList<>(); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); adapter.setData(beanList); gridView.setAdapter(adapter);// //必须取代掉原来的布局,否则grid view 四周有相当大的边距// gridView.setSelector(android.R.color.transparent); gridView.setGravity(Gravity.CENTER);
运行效果如下:
这个黄色的不伦不类,不属于grid view,
参考:
http://www.educity.cn/wenda/151651.html
得知,是因为gridview中selector的问题,通过
gridView.setSelector(android.R.color.transparent);替换掉即可
实现GridView中左右可用空间均分
这里使用STRETCH_COLUMN_WIDTH stretch mode.
GridView gridView = new GridView(this); setContentView(gridView); gridView.setNumColumns(4); //set STRETCH_SPACING stretch mode gridView.setStretchMode(GridView.STRETCH_COLUMN_WIDTH); SimpleAdapter adapter = new SimpleAdapter(this); List<String> beanList = new ArrayList<>(); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); adapter.setData(beanList); gridView.setAdapter(adapter); //必须取代掉原来的布局,否则grid view 四周有相当大的边距 gridView.setSelector(android.R.color.transparent); gridView.setGravity(Gravity.CENTER);
实现GridView中左右边界grid cell,紧靠着边界
GridView gridView = new GridView(this); setContentView(gridView); gridView.setNumColumns(4); //set STRETCH_SPACING stretch mode gridView.setStretchMode(GridView.STRETCH_SPACING); //set columnWidth ,or looks strange as below int viewWidth = (int) (getResources().getDisplayMetrics().density * 72); gridView.setColumnWidth(viewWidth); //SimpleAdapter 见下面的“运行Demo,需要的其他部分” SimpleAdapter adapter = new SimpleAdapter(this); List<String> beanList = new ArrayList<>(); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); beanList.add(new String("叮咚新闻")); adapter.setData(beanList); gridView.setAdapter(adapter); //必须取代掉原来的布局,否则grid view 四周有相当大的边距 gridView.setSelector(android.R.color.transparent); gridView.setGravity(Gravity.CENTER);
使用上面例子,不设置columnWidth,就会出现下面类似的情况:
运行Demo,需要的其他部分
<?xml version="1.0" encoding="utf-8"?> <!--bg_label_normal.xml--><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:width="1px" android:color="#e5e5e5"></stroke> <corners android:radius="4dp"></corners> <solid android:color="@android:color/white"></solid></shape>
<?xml version="1.0" encoding="utf-8"?> <!--cell_drag_category_sub.xml--><TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg_label_normal" android:gravity="center" android:singleLine="true" android:textColor="@android:color/black" android:textSize="14sp"></TextView>
package com.hang.androidtestdemo;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.List;public class SimpleAdapter extends BaseAdapter { public SimpleAdapter(Context context) { this.mContext = context; } private List<String> beanList; private Context mContext; public void setData(List<String> beanList) { this.beanList = beanList; notifyDataSetChanged(); } @Override public int getCount() { return (beanList == null) ? 0 : beanList.size(); } @Override public String getItem(int position) { String bean = beanList.get(position); return bean; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.cell_drag_category_sub, parent, false); AbsListView.LayoutParams viewParams = (AbsListView.LayoutParams) convertView.getLayoutParams(); int viewHeight = (int) (mContext.getResources().getDisplayMetrics().density * 29); int viewWidth = (int) (mContext.getResources().getDisplayMetrics().density * 72); viewParams.height = viewHeight; viewParams.width = viewWidth; } String item = getItem(position); ((TextView) convertView).setText(item); return convertView; }}
0 0
- GridView中均分中碰到的几个问题
- Silverlight 中碰到的几个问题
- Spring.NET1.2+Nhiberate1.2在使用GridView中碰到的几个问题
- 在CentOS6.4中碰到的几个问题
- 创建ajax库过程中碰到的几个问题
- mysql5.7.14源码安装过程中碰到的几个问题.
- mysql碰到的几个问题
- c++碰到的几个问题
- 使用JavaMail碰到的几个问题
- NOTEBOOK中想到的几个问题
- 开发中遇到的几个问题
- 技术管理中常见的几个问题
- 技术管理中常见的几个问题
- 技术管理中常见的几个问题
- 技术管理中常见的几个问题
- Web中遇到的几个问题
- MVC4中webpages_Membership的几个问题
- 技术管理中常见的几个问题
- XGBoost原理及在Python中使用XGBoost
- 散列表
- IMX6 ILI2302M(USB)触摸屏移植
- C++ 命名空间介绍和头文件介绍
- Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (ut
- GridView中均分中碰到的几个问题
- 如何加快AS的运行速度
- VR Android播放器实现(一)
- QDP核心计算使用方法
- 基于Linux epoll模型的Simple
- 最短路~spfa模板
- 我眼中的meta标签和viewport
- Miller-Rabin质数测试
- scrollview在Fragment的运用,bar滑动到顶部静止