滚动期间GridView内容消失

ADC*_*DER 6 android android-gridview

我有一个GridView在我的应用程序中,我想显示文本和复选框就像电子邮件收件箱页面.我使用了一个适配器,但当我显示超过15个元素时,顶行的文本和复选框消失,所以当我再次向上滚动它们时,它们是不可见的.这是我的代码

public class EmployeeAdaptor extends BaseAdapter {  
Context context;
String [] table;
int pos;
int formatOfTable;
public EmployeeAdaptor(Context c,String []tab,int numberOfItems,int format, boolean[] sel) {
    context = c;
    table = tab;
    items = numberOfItems;
    formatOfTable = format;
    //ifformat is 0 then show text view in first column
    //if it is 1 then show radio button in first column
    //if it is 2 then show check box in first column.
    pos = 0;
}
public int getCount() {
    // 
    return items;
}

public Object getItem(int position) {
    // 
    return position;
}

public long getItemId(int position) {
    // 
    return position;
}

public View getView(final int position, View convertView, ViewGroup parent) {

    View v;
    TextView text = new TextView(context);
    RadioButton radio = new RadioButton(context);
    CheckBox check = new CheckBox(context);

    if(convertView == null){
        v = new View(context);
    }
    else{
        v = convertView;
    }

    if(formatOfTable==2 && position%5==0 && position/5!=0){
        check.setId(position/5);
        v = check;

    }
    else if(formatOfTable==0 && position%5==0 && position/5!=0){
        text.setText("");
        v = text;
        //To set blank text at first position when no need of check
    }
    else{
        if(position%5!=0){
            try{
                v = text;
                text.setText(table[pos]);
                text.setTextColor(Color.BLACK);
                text.setTextSize(20);
                pos++;
            }
            catch(Exception e){

            }
        }
    }
    if(position/5==0){
        text.setTypeface(Typeface.DEFAULT_BOLD);
    }
    return v;
}
  }
Run Code Online (Sandbox Code Playgroud)

调用适配器类如下:

table.setAdapter(new EmployeeAdaptor(this, empTable, numberofboxes, 0, selected));
//OR
table.setAdapter(new EmployeeAdaptor(this, empTable, numberofboxes, 1, selected));
Run Code Online (Sandbox Code Playgroud)

布局XML文件是

<GridView
    android:id="@+id/gridView1"
    android:layout_width="wrap_content"
    android:layout_height="360dp"
    android:layout_marginTop="40dp"
    android:numColumns="5" android:verticalSpacing="35dp">
</GridView>
Run Code Online (Sandbox Code Playgroud)

Joc*_*hem -1

我认为当您添加新项目时,GridView 已满并自动向下滚动(因此第一个项目“离开”在顶部)。是否有空间容纳超过 15 件物品?特别是当你将 GridView 的高度固定为 360dp 后?您可以为 GridView 设置背景颜色以进行调试,以查看 GridView 获得了多少空间以及前 15 个项目占用了多少空间。