1. 程式人生 > >Android多行gridview橫向滑動的實現

Android多行gridview橫向滑動的實現

關鍵程式碼

    /**
     * 設定GridView的寬度
     *
     * @param defaultColumns 設定列數 4
     * @param defaultRows    設定行數 2
     */
    private void setGridViewValue(GridView gridView, int postion, int defaultColumns, int defaultRows) {

        int count = recomGameAdapter.getCount();
        gridView.setAdapter(recomGameAdapterList.get(postion));
        int
columns = 0; if (count >= 8) { //當count大於8時 如下排列 //| 1 | 3 | 5 | 7 | //| 2 | 4 | 6 | 8 | columns = (count % 2 == 0) ? count / 2 : count / 2 + 1; } else { //當count小於於8時 如下排列 //| 1 | 2 | 3 | 4 | //| 5 | 6 | 7 | 8 | columns = (count % defaultRows == 0
) ? count / defaultRows : count / defaultRows + 1; if (columns < defaultColumns) { columns = defaultColumns; } } int columnWidth = (dm.widthPixels - mContext.getResources().getDimensionPixelOffset(R.dimen.home_common_margin) * 2) / defaultColumns; RelativeLayout.LayoutParams params = new
RelativeLayout.LayoutParams (columns * columnWidth, RelativeLayout.LayoutParams.WRAP_CONTENT); gridView.setLayoutParams(params); gridView.setColumnWidth(columnWidth); // gridView.setHorizontalSpacing(hSpacing); gridView.setStretchMode(GridView.NO_STRETCH); gridView.setNumColumns(columns); }

佈局檔案

<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:fillViewport="true"
    android:scrollbars="none">


    <GridView
        android:id="@+id/recom_game_gv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/day_recom_rl"
        android:numColumns="4"
        android:scrollbars="none"
        android:stretchMode="columnWidth"></GridView>

    <</HorizontalScrollView>