簡體   English   中英

Android GridView 將一半項目放在左側,一半放在右側

[英]Android GridView Place Half items on Left and Half on Right

假設我們有 6 個項目,有沒有可能或方法在網格視圖中將 3 個項目放在行的左側,在行的右側放置 3 個項目,最終我們在它們之間有一個空格。

實際上,我嘗試在適配器之后提供動態水平間距,但它沒有幫助我。 附上圖片

在此處輸入圖片說明

    package com.nxd.cap.Adapters;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

import com.nxd.cap.R;

import java.util.ArrayList;

public class GalleryAdapter extends BaseAdapter {

    Context context;
    int[] images = new int[]{R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4,
            R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8,
            R.drawable.image1, R.drawable.image2};

    public GalleryAdapter(Context context) {
        this.context = context;
    }

    @Override
    public int getCount() {
        return images.length;
    }

    @Override
    public Object getItem(int i) {
        return images[i];
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        if (view == null){
            LayoutInflater inflater = (LayoutInflater) 
                context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.gallery_item, null);

            ViewHolder viewHolder = new ViewHolder();
            viewHolder.imageView = (ImageView)view.findViewById(R.id.imageView);
            view.setTag(viewHolder);
        }
        ViewHolder viewHolder = (ViewHolder) view.getTag();
//        Picasso.with(context).load(images[i]).into(viewHolder.image);

        GridView gridView = (GridView)viewGroup;
        if (i == images.length/2) {
            gridView.setHorizontalSpacing(100);
        }

        viewHolder.imageView.setImageResource(images[i]);

        return view;
    }

    static class ViewHolder {
        ImageView imageView;
    }
}

當您使用 gridView 時,您可以設置列數。如果只需要在代碼下方設置左右兩列。

   gridView.setNumColumns(2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM