android gridview 详解,Android开发 GridView详解
前言
xml样板
常用的属性
android:numColumns="auto_fit" ,GridView的列数设置为自动
android:columnWidth="90dp",每列的宽度,也就是Item的宽度
android:stretchMode="columnWidth",缩放与列宽大小同步
NO_STRETCH
0
扩展无效
STRETCH_COLUMN_WIDTH
2
扩展列
STRETCH_SPACING
1
扩展列间的空间
STRETCH_SPACING_UNIFORM
3
均匀地扩展列间的空间
android:verticalSpacing="10dp",两行之间的边距
android:horizontalSpacing="10dp",两列之间的边距
例子1 使用ArrayAdapter
在Activity里
List stringList = new ArrayList<>();
ArrayAdapter arrayAdapter = new ArrayAdapter<>(this,R.layout.text_parent_select_item,stringList);
gridView.setAdapter(arrayAdapter);
text_parent_select_item.xml
例子2 使用SimpleAdapter
Activity类
public class MainActivity extendsActivity {
privateGridView gridView;
private List>dataList;
privateSimpleAdapter adapter;
//如果只有TextView 可以考虑使用ArrayAdapter 适配器,当然你也可以自定义适配器
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView =(GridView) findViewById(R.id.gridview);
//初始化数据
initData();
String[] from={"img","text"};
int[] to={R.id.img,R.id.text};
adapter=new SimpleAdapter(this, dataList, R.layout.gridview_item, from, to);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(newOnItemClickListener() {
@Override
public void onItemClick(AdapterView> arg0, View arg1, intarg2,
longarg3) {
AlertDialog.Builder builder= new AlertDialog.Builder(MainActivity.this);
builder.setTitle("提示").setMessage(dataList.get(arg2).get("text").toString()).create().show();
}
});
}
voidinitData() {
//图标
int icno[] ={ R.drawable.i1, R.drawable.i2, R.drawable.i3,
R.drawable.i4, R.drawable.i5, R.drawable.i6, R.drawable.i7,
R.drawable.i8, R.drawable.i9, R.drawable.i10, R.drawable.i11, R.drawable.i12 };
//图标下的文字
String name[]={"时钟","信号","宝箱","秒钟","大象","FF","记事本","书签","印象","商店","主题","迅雷"};
dataList = new ArrayList>();
for (int i = 0; i
Map map=new HashMap();
map.put("img", icno[i]);
map.put("text",name[i]);
dataList.add(map);
}
}
}
GridView主布局文件activity_main.xml
android:id="@+id/gridview"android:layout_width="match_parent"android:layout_height="wrap_content"android:columnWidth="80dp"android:stretchMode="spacingWidthUniform"android:numColumns="3"
/>
列表项布局gridview_item.xml
android:id="@+id/img"android:layout_width="60dp"android:layout_height="60dp"android:layout_marginTop="10dp"android:src="@drawable/ic_launcher" />
android:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="2dp"android:layout_gravity="center"android:textColor="#FFF"android:text="文字"
/>
只显示一行的问题
格外注意!如果你是滚动布局(ListView、ScrollView等等)包裹GridView,就出现不会自动换行的问题。这个时候需要你如下自定义view。
packagecom.weijie.app_user.activity.order;
importandroid.content.Context;
importandroid.util.AttributeSet;
importandroid.widget.GridView;
public class MyGridView extendsGridView {
publicMyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
publicMyGridView(Context context) {
super(context);
}
public MyGridView(Context context, AttributeSet attrs, intdefStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, intheightMeasureSpec) {
int expandSpec =MeasureSpec.makeMeasureSpec(
Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
原文:https://www.cnblogs.com/guanxinjing/p/12605374.html
android gridview 详解,Android开发 GridView详解相关推荐
- Android App Bundles相关概念及开发流程详解
本文会根据官网的介绍,结合自己的一些理解,来阐述Android App Bundles的相关概念和开发流程. 主要参考文章如下. https://developer.android.com/guide ...
- Android Studio安装与App开发步骤详解
环境准备 使用的软硬件具体如下: Windows 7 Android Studio 3.3.2[简称:AS,从官网可以下载,或者使用低版本升级:help->check for update] J ...
- android gridview控件使用详解_Android开发实现自定义日历、日期选择控件
点击上方蓝字关注 ?? 来源: wenzhihao123 https://www.jianshu.com/p/a2f102c728ce 前言 最近项目需要日历效果,考虑用第三方的反而不太适合设计需求, ...
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38238749,本文出自:[张鸿洋的博客] 群里一哥们今天聊天偶然提到这个git ...
- android gridview 详解,Android GridView九宫图
属性名称 描述 android:columnWidth 设置列的宽度. android:gravity 设置此组件中的内容在组件中的位置.可选的值有:top.bottom.left.right.cen ...
- 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格
本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.5节良好的Java程序代码编写风格,作者 陈会安,更多章节内容可以访问云栖社区"异步社区&quo ...
- Android NFC开发实战详解
Android NFC开发实战详解 Android开发实战详解NFC国内第一本AndroidNFC开发书籍带你开启AndroidNFC开发的神秘之旅大综合案例帮助读者快速进入实战角色:WiFi快速连接 ...
- 《Java和Android开发实战详解》——1.2节Java基础知识
本节书摘来自异步社区<Java和Android开发实战详解>一书中的第1章,第1.2节Java基础知识,作者 陈会安,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- Android开发 ShapeDrawable详解
Android开发 ShapeDrawable详解 前言 ShapeDrawable一开始我以为它是对应xml文件属性里的shape的画图,后来发现我错了... 其实ShapeDrawable更像是一 ...
- 《Java和Android开发实战详解》——2.2节构建Java应用程序
本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.2节构建Java应用程序,作者 陈会安,更多章节内容可以访问云栖社区"异步社区"公众号 ...
最新文章
- HTML 中有用的字符实体
- Java中sin、log、tan等复杂数学运算怎么搞?
- Centos6.5 下安装opencv
- patent sub categories
- pdfminer3k 官方文档_IPFS官方周报112期
- 定义DO/DTO/VO等POJO类时,不要设定任何属性默认值
- 天龙八部网单服务器技能修改,天龙八部3门派技能修改介绍
- putty远程linux系统时间修改,用putty怎么修改监控服务器时间?
- php实现一个简单的购物网站
- 大数据之-Hadoop3.x_MapReduce_WordCount案例需求分析---大数据之hadoop3.x工作笔记0087
- 安装linux可是c盘文件夹失败,虚拟机安装linux系统,会对物理的磁盘有影响吗?怎样保证安全,谢了!...
- java中的时间片概念_java中常用的时间处理类TimeUtil
- 试图加载 Crystal Reports 运行时出现错误
- 2022-2028全球STEAM教育行业调研及趋势分析报告
- 理光打印机服务器响应错误,理光网络打印机服务器设置
- uniapp 设置ios safri浏览器 添加到主屏幕 自定义图片及名称
- 计算机知网期刊排名,中国知网网络首发期刊榜单发布,《重庆医学》进入高发文量TOP50(科技类)...
- Java大牛呕心沥血经历——技术面试与HR谈薪资技巧
- 人工智能中神经网络与自然语言处理共生关系_CodingPark编程公园
- 6.2、C++的内联函数、函数重载、局部变量和全局变量