gridview安卓实现单行多列横向滚动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gridview安卓实现单行多列横向滚动相关的知识,希望对你有一定的参考价值。

  <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" />
http://www.cnblogs.com/xiaobo-Linux/ qq463431476
                 </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);
        
   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;
        }
        

 

以上是关于gridview安卓实现单行多列横向滚动的主要内容,如果未能解决你的问题,请参考以下文章

如何实现android中横向滚动的gridView

Flutter学习基本组件之基本列表Gradview组件

滚动包含 x 个 GridView 的整个片段

嵌套滚动视图自动滚动到底部

android ScrollView+GridView GridView不滚动

ListView能不能横向滚动解决办法