package com.marshalchen.common.uimodule.superlistview;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.widget.GridView;
import android.widget.ListAdapter;
import com.marshalchen.common.uimodule.R;
/**
* Created by kentin on 24/04/14.
*/
public class SuperGridview extends BaseSuperAbsListview {
//-------------------------------------------------------
// Custom Grid attributes
//-------------------------------------------------------
private int mColumns;
private int mHorizontalSpacing;
private int mVerticalSpacing;
public SuperGridview(Context context) {
super(context);
}
public SuperGridview(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SuperGridview(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public GridView getList(){
return (GridView) mList;
}
@Override
protected void initAttrs(AttributeSet attrs) {
super.initAttrs(attrs);
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.superlistview);
try {
mSuperListViewMainLayout = a.getResourceId(R.styleable.superlistview_superlv_mainLayoutID, R.layout.super_list_view_view_progress_gridview);
} finally {
a.recycle();
}
TypedArray ag = getContext().obtainStyledAttributes(attrs, R.styleable.supergridview);
try {
mColumns = ag.getInt(R.styleable.supergridview_supergv__columns, 1);
mVerticalSpacing = (int) ag.getDimension(R.styleable.supergridview_supergv__verticalSpacing, 1);
mHorizontalSpacing = (int) ag.getDimension(R.styleable.supergridview_supergv__horizontalSpacing, 1);
} finally {
ag.recycle();
}
}
@Override
protected void initAbsListView(View v) {
View listView = v.findViewById(android.R.id.list);
if (listView instanceof GridView)
mList = (GridView) listView;
else
throw new IllegalArgumentException(listView.getClass().getName());
if (mList!=null) {
getList().setNumColumns(mColumns);
getList().setVerticalSpacing(mVerticalSpacing);
getList().setHorizontalSpacing(mHorizontalSpacing);
getList().setHorizontalSpacing((int) mDividerHeight);
getList().setVerticalSpacing((int) mDividerHeight);
mList.setClipToPadding(mClipToPadding);
mList.setOnScrollListener(this);
if (mSelector != 0)
mList.setSelector(mSelector);
if (mPadding != -1.0f) {
mList.setPadding(mPadding, mPadding, mPadding, mPadding);
} else {
mList.setPadding(mPaddingLeft, mPaddingTop, mPaddingRight, mPaddingBottom);
}
mList.setScrollBarStyle(mScrollbarStyle);
}
}
@Override
public void setAdapter(ListAdapter adapter) {
getList().setAdapter(adapter);
super.setAdapter(adapter);
}
@Override
public void clear() {
getList().setAdapter(null);
}
}