Android GridView使用

一.GridView的設置

<GridView
    android:numColumns="auto_fit" <!--GridView的列數設置爲自動-->
    android:columnWidth="90dp"<!--每列的寬度,即item的寬度--> 
    android:stretchMode="columnWidth"<!--縮放與列寬大小同步-->
    android:verticalSpacing="10dp"<!--兩行之間的邊距-->
    android:horizontalSpacing="10dp"<!--兩列之間的邊距-->
    />


二.如何取消或定製當點擊GridView 的時候出現的那個黃色背景?

    1.初始化的時候在代碼裏面設置setSelector顏色爲透明色java

gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));

    Gridview 點擊某個item 改變item的背景 android

    2.在你的adapter裏面添加ide

private int clickTemp = -1;
// 標識選擇的Item
public void setSeclection(int position) {
    clickTemp = position;
}

    3.而後在getview裏面這樣佈局

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // 點擊改變選中listItem的背景色
    if (clickTemp == position) {
        layout.setBackgroundResource(R.drawable.check_in_gdv_bg_s);
    } else {
        layout.setBackgroundColor(Color.TRANSPARENT);
    }
}

    4.最後在gridview的單擊item事件這樣作spa

//GridView監聽事件
designOrderGridView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        //arg1是當前item的view,經過它能夠得到該項中的各個組件。 
        //arg2是當前item的ID。這個id根據你在適配器中的寫法能夠本身定義。 
        //arg3是當前的item在listView中的相對位置! 
        //設置適配器
        mydapter.setSeclection(arg2);
        mydapter.notifyDataSetChanged();
    }
});


三.GridView尾部添加固定的Item

    將Item的個數+1,返回給Adapter的getCount();
code

    在Adapter的getView()中,判斷position==getCount()-1,就是固定的那個Item.orm


四.GridView根據Item的行數設置高度

如下兩種方式均可以作到:xml

  1、在xml佈局文件中設置,wrap_content即表示根據gridView的內容自使用寬高,代碼以下:事件

 android:layout_width="wrap_content"
 android:layout_height="wrap_content"

  2、在代碼中動態設置,能夠在對gridview賦值以後,計算gridview的寬高,而後進行設置:圖片

int height = 20;//此處的高度須要動態計算		  
int width = 30;//此處的寬度須要動態計算 
LinearLayout.LayoutParams linearParams =new LayoutParams(width, height);
gridview.setLayoutParams(linearParams); //使設置好的佈局參數應用到控件


  須要注意的是:若是你的gridview是嵌套在ScrollView中,那麼,你須要重寫gridview控件,否則gridview只顯示一行的問題(即高度不夠),具體重寫方式,能夠參考下面代碼:

/**
 * @author hnbcinfo
 * 自定義GridView控件,解決在ListView 或ScrollView中使用GridView致使GridView顯示不全的問題
 * 當前應用:時間軸中,圖片顯示
 */
public class GridViewForScrollView extends GridView {   
    public GridViewForScrollView(Context context, AttributeSet attrs) {   
        super(context, attrs);   
    }   
  
    public GridViewForScrollView(Context context) {   
        super(context);   
    }   
  
    public GridViewForScrollView(Context context, AttributeSet attrs, int defStyle) {   
        super(context, attrs, defStyle);   
    }   
  
    @Override   
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {   
  
        int expandSpec = MeasureSpec.makeMeasureSpec(   
                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);   
        super.onMeasure(widthMeasureSpec, expandSpec);   
    }   
}
相關文章
相關標籤/搜索