首页 > 解决方案 > GridView 行有时会重叠

问题描述

我有一个 GridView 用来显示一个句子(例如:“all over again”在这里可以是一个句子。)

我的问题是有时第二行与第一行重叠。我不懂为什么。这里有一些图片显示我的问题。

在此处输入图像描述

<GridView
        android:id="@+id/sol_1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.25"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:horizontalSpacing="3dp"
        android:numColumns="8"
        android:verticalSpacing="35dp" />

这是我的代码的一部分:

GridView solutionGrid = (GridView) findViewById(R.id.sol_1);
final AlphabetCharAdapter solutionCharAdapter = new AlphabetCharAdapter(getApplicationContext(), solutionChars);
solutionGrid.setAdapter(solutionCharAdapter);

这是我的适配器类:

public class AlphabetCharAdapter extends BaseAdapter {

private AlphabetChar[] alphabetCharList;
private LayoutInflater inflater;

public AlphabetCharAdapter(Context applicationContext, AlphabetChar[] alphabetCharList) {
    this.alphabetCharList = alphabetCharList;
    inflater = (LayoutInflater.from(applicationContext));
}

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

@Override
public Object getItem(int i) {
    return null;
}

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

@Override
public View getView(int i, View view, ViewGroup parent) {
    if (view == null) {
        view = inflater.inflate(R.layout.gridview_charachters, parent, false); // inflate the layout
    }
    ImageView iv = (ImageView) view.findViewById(R.id.simple_character); // get the reference of ImageView
    if (alphabetCharList[i].getCharacter() == ' ') {
        iv.setVisibility(View.GONE);
    } else {
        iv.setVisibility(View.VISIBLE);
        iv.setImageResource(charToImageConverter.getID(alphabetCharList[i].getCharacter(), view)); // set logo images
    }
    return view;
}

我测试了“android:verticalSpacing”并在我的 xml 文件中增加了它。它变得更好,但问题是,无论我增加verticalSpacing 来修复上图重叠,下图verticalSpace 都会变大。这个问题有什么解决办法吗?我不知道为什么上图中会发生这种重叠!

谢谢!

标签: androidgridview

解决方案


推荐阅读