Android中GridView使用的方法有以下幾步驟:
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="auto_fit"
android:columnWidth="100dp"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
/>
其中,numColumns屬性用于設(shè)置列數(shù),columnWidth屬性用于設(shè)置每列的寬度,verticalSpacing屬性用于設(shè)置行間距,horizontalSpacing屬性用于設(shè)置列間距,stretchMode屬性用于設(shè)置子項的寬度是否平均分配。
GridView gridView = findViewById(R.id.gridview);
gridView.setAdapter(adapter);
其中,adapter為Gridview的適配器,用于設(shè)置子項的內(nèi)容和樣式。
public class MyAdapter extends BaseAdapter {
private Context mContext;
private List<String> mData;
public MyAdapter(Context mContext, List<String> mData) {
this.mContext = mContext;
this.mData = mData;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView == null){
convertView = LayoutInflater.from(mContext).inflate(R.layout.grid_item, null);
viewHolder = new ViewHolder();
viewHolder.textView = convertView.findViewById(R.id.textview);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.textView.setText(mData.get(position));
return convertView;
}
private static class ViewHolder{
TextView textView;
}
}
在getView()方法中,將子項的內(nèi)容設(shè)置為mData中對應(yīng)位置的數(shù)據(jù)。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"/>
</LinearLayout>
可以根據(jù)需求自定義子項的布局及樣式。
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 處理點擊事件
}
});
可以在onItemClick()方法中處理GridView子項的點擊事件。
以上就是使用GridView的基本方法,通過適配器設(shè)置子項的內(nèi)容和樣式,可以實現(xiàn)自定義的GridView布局。