首页 > 系统 > Android > 正文

Android控件gridview实现单行多列横向滚动效果

2019-10-21 21:34:28
字体:
来源:转载
供稿:网友

本文实例为大家分享了安卓实现单行多列横向滚动,供大家参考,具体内容如下

<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的长宽变化,如果它的长超过屏幕,则自动添加水平滚动条。

 

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和绑定适配器

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;   }
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;  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表