Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 等行网格视图_Android_Gridview - Fatal编程技术网

Android 等行网格视图

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

我有一个2行3列的gridview。希望使行在屏幕上均匀分布,而不让用户屏幕看到任何行。行的高度应该相等(最好是gridview/3的高度)

当前正在使用此适配器:

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;