【问题标题】:GridView with equal rows具有相等行数的 GridView
【发布时间】:2015-05-28 11:57:32
【问题描述】:

我有一个 2 行 3 列的网格视图。想要使行在屏幕上均匀拉伸,而不让用户屏幕看到任何行。行的高度应该相等(最好是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"?>

<GridView
    android:drawSelectorOnTop="true"
    android:listSelector="@drawable/list_bg"
    android:verticalSpacing="5dp"
    android:horizontalSpacing="5dp"
    android:padding="5dp"
    android:columnWidth="100dp"
    android:numColumns="2"
    android:stretchMode="columnWidth"
    android:gravity="center"
    android:id="@+id/home_grid"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></GridView>

【问题讨论】:

  • 我已经发布了答案,请查看。

标签: android gridview


【解决方案1】:

试试这个

 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;
    }

然后根据设备高度动态设置GridViewitem的高度

  v.getLayoutParams().height = getScreenHeight(context)/3;

【讨论】:

    猜你喜欢
    • 2015-06-28
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多