本文实例为大家分享了安卓实现单行多列横向滚动,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
< GridLayout android:layout_width = "match_parent" android:layout_height = "match_parent" android:columnCount = "1" > < HorizontalScrollView android:layout_width = "match_parent" android:layout_height = "88dp" android:layout_column = "0" android:layout_gravity = "left|bottom" android:layout_row = "0" > < LinearLayout android:id = "@+id/linearLayout_gridtableLayout" android:layout_width = "1000dp" android:layout_height = "79dp" android:orientation = "horizontal" > < GridView android:id = "@+id/gridview1" android:layout_width = "600dp" android:layout_height = "match_parent" android:background = "#ffffff" android:columnWidth = "100dp" android:gravity = "center" android:horizontalSpacing = "1dp" android:numColumns = "6" android:scrollbarAlwaysDrawHorizontalTrack = "true" android:scrollbarAlwaysDrawVerticalTrack = "true" android:scrollbars = "horizontal|vertical" android:verticalSpacing = "1dp" /> </ LinearLayout > </ HorizontalScrollView > </ GridLayout > |
指定其中LinearLayout的宽度就能够实现你GridView的长宽变化,如果它的长超过屏幕,则自动添加水平滚动条。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
private int [] icon = { R.drawable.camera, R.drawable.wifi, R.drawable.temperature, R.drawable.lamp, R.drawable.wechat, R.drawable.mic, }; private String[] iconName = { "摄像头" , "网络" , "温湿度" , "电器" , "微信" , "语音" }; private GridView gview; private List<Map<String, Object>> data_list; private SimpleAdapter sim_adapter; protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); //gridview数据适配器 gview = (GridView) findViewById(R.id.gridview1); //新建List data_list = new ArrayList<Map<String, Object>>(); //获取数据 getData(); //新建适配器 String [] from ={ "image" , "text" }; int [] to = {R.id.image,R.id.title}; sim_adapter = new SimpleAdapter( this , data_list, R.layout.items, from, to); //配置适配器 gview.setAdapter(sim_adapter); } public List<Map<String, Object>> getData(){ //cion和iconName的长度是相同的,这里任选其一都可以 for ( int i= 0 ;i<icon.length;i++){ Map<String, Object> map = new HashMap<String, Object>(); map.put( "image" , icon[i]); map.put( "text" , iconName[i]); data_list.add(map); } return data_list; } |
Fragment里:
oncreate里边初始化数据,oncreateview里边初始化gridview和绑定适配器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.gridview,container, false ); gridview = (GridView) view.findViewById(R.id.gridview1); //新建List data_list = new ArrayList<Map<String, Object>>(); //http://www.cnblogs.com/xiaobo-Linux/ qq463431476 //获取数据 getData(); //新建适配器 String [] from ={ "image" , "text" }; int [] to = {R.id.image,R.id.title}; sim_adapter = new SimpleAdapter(getActivity(), data_list, R.layout.items, from, to); //配置适配器 gridview.setAdapter(sim_adapter); return view; } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); } // http://www.cnblogs.com/xiaobo-Linux/ qq463431476 public List<Map<String, Object>> getData(){ //cion和iconName的长度是相同的,这里任选其一都可以 for ( int i= 0 ;i<icon.length;i++){ Map<String, Object> map = new HashMap<String, Object>(); map.put( "image" , icon[i]); map.put( "text" , iconName[i]); data_list.add(map); } return data_list; } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/Xurns/article/details/51535377