Android 等行网格视图
我有一个2行3列的gridview。希望使行在屏幕上均匀分布,而不让用户屏幕看到任何行。行的高度应该相等(最好是gridview/3的高度) 当前正在使用此适配器:Android 等行网格视图,android,gridview,Android,Gridview,我有一个2行3列的gridview。希望使行在屏幕上均匀分布,而不让用户屏幕看到任何行。行的高度应该相等(最好是gridview/3的高度) 当前正在使用此适配器: public class HomeAdapter extends BaseAdapter { private LayoutInflater mLayoutInflater; private Context mContext; private int h; public HomeAdapter(C
public class HomeAdapter extends BaseAdapter {
private LayoutInflater mLayoutInflater;
private Context mContext;
private int h;
public HomeAdapter(Context context, int height) {
mContext = context;
mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
h = height;
}
@Override
public int getCount() {
return 6;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
FunctionHolder holder;
if (convertView == null) {
holder = new FunctionHolder();
convertView = mLayoutInflater.inflate(R.layout.view_flipper, parent, false);
holder.flipper = (ViewFlipper) convertView.findViewById(R.id.flipper);
} else {
holder = (FunctionHolder) convertView.getTag();
}
View topView = mLayoutInflater.inflate(R.layout.first_item, null);
View bottomView = mLayoutInflater.inflate(R.layout.second_item, null);
changeView(bottomView, position);
changeView(topView, position);
holder.flipper.addView(topView, 0);
holder.flipper.addView(bottomView, 1);
startAnimation(holder.flipper, position);
convertView.setMinimumHeight(h);
convertView.setTag(holder);
return convertView;
}
gridview.xml
<?xml version="1.0" encoding="utf-8"?>
试试这个
public static int getScreenHeight(Context c) {
if (screenHeight == 0) {
WindowManager wm = (WindowManager) c.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
screenHeight = size.y;
}
return screenHeight;
}
然后根据设备的高度动态设置GridView
项目的高度
v.getLayoutParams().height = getScreenHeight(context)/3;
我已经发布了答案,请检查一下。
v.getLayoutParams().height = getScreenHeight(context)/3;