使GridView可以單行橫向滑動


  最近做的練手的小項目中存在一個橫向滑動的問題,需要HorizontalScroll中嵌套GridView,但是GridView默認是豎直排放的item,況且HorizontalScroll與GridView都屬於存在滾動條的控件,所以會有一些沖突問題,這里上網搜索了一下,發現了一個較為簡單的解決辦法,就是在java代碼中動態的設置GridView的numColumns屬性、每項Item的寬度和GridView的總寬度。將numColumns設置為與list集合的長度一致,下面貼出關鍵代碼:

 1             int length = 150;  //定義一個長度
 2                     int size = groupBuyList.size();  //得到集合長度
 3                     //獲得屏幕分辨路
 4                     DisplayMetrics dm = new DisplayMetrics();
 5                     getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
 6                     float density = dm.density;
 7 //                    Log.d(TAG, "handleMessage: "+density);
 8                     int gridviewWidth = (int) (size * (length + 10) * density);
 9                     int itemWidth = (int) (length * density);
10 
11                     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
12                             gridviewWidth, LinearLayout.LayoutParams.MATCH_PARENT);
13                     myGirdView.setLayoutParams(params); // 設置GirdView布局參數,橫向布局的關鍵
14                     myGirdView.setColumnWidth(itemWidth); // 設置列表項寬
15                     myGirdView.setHorizontalSpacing(15); // 設置列表項水平間距
16                     myGirdView.setStretchMode(GridView.NO_STRETCH);
17                     myGirdView.setNumColumns(size); // 設置列數量=列表集合數

效果如下所示:

下面這兩篇比較相似的博文都有簡單的完整的代碼,不過只是一個演示Demo的代碼,想了解的朋友們可以過去圍觀一下:

 

Android GridView實現橫向滾動

Android 橫向列表GridView 實現橫向滾動


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM