Android 限制gridview中的图像显示数量

Android 限制gridview中的图像显示数量,android,gridview,android-gridview,Android,Gridview,Android Gridview,我想知道是否有办法限制gridview中显示的图像数量。我创建了一个gridview,可能需要显示很多图像。因此,我想实现一个系统,默认情况下只显示30个图像,并且会有一个“加载更多”按钮,供用户将更多内容加载到gridview中。但我在这里有点迷路了,我不知道该如何前进,也不知道该寻找什么。我需要一些关于这个问题的建议。如有任何意见,将不胜感激。提前谢谢 GridView使用BaseAdapter来获取其项目,因此如果要更改要显示的数量,则必须在适配器中更改它。像这样: public clas

我想知道是否有办法限制gridview中显示的图像数量。我创建了一个gridview,可能需要显示很多图像。因此,我想实现一个系统,默认情况下只显示30个图像,并且会有一个“加载更多”按钮,供用户将更多内容加载到gridview中。但我在这里有点迷路了,我不知道该如何前进,也不知道该寻找什么。我需要一些关于这个问题的建议。如有任何意见,将不胜感激。提前谢谢

GridView使用BaseAdapter来获取其项目,因此如果要更改要显示的数量,则必须在适配器中更改它。像这样:

public class ImagePageAdapter extends BaseAdapter {
    private boolean loadAll = false;

    public void setTrue(){
         loadAll = true;
    }

    @Override
    public int getCount() {
     if(loadAll) return getAmount();
     return 30;
    }

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        if(convertView == null) return getImage(position);
        else{
             //reuse convertview
        }
    }

因此,您只需调用setTrue()并让GridView现在需要重新加载。

GridView使用BaseAdapter来获取其项目,因此如果您要更改要显示的数量,则必须在适配器中更改它。像这样:

public class ImagePageAdapter extends BaseAdapter {
    private boolean loadAll = false;

    public void setTrue(){
         loadAll = true;
    }

    @Override
    public int getCount() {
     if(loadAll) return getAmount();
     return 30;
    }

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        if(convertView == null) return getImage(position);
        else{
             //reuse convertview
        }
    }

因此,您只需调用setTrue()并让GridView重新加载即可。

谢谢您的回复。那么根据您提供的答案,默认情况下它只加载30个图像,一旦调用setTrue(),它将加载所有图像?在它加载所有图像之后,我需要重新加载GridView以便图像显示?为了精确起见:GridView使用ListAdapter。BaseAdapter恰好是其中之一,不是唯一的一个,也不是最简单的一个。您的getView实现看起来也很奇怪。和
setTrue
?那是什么样的方法名?我知道这只是一个例子。作为程序员,我只是假设您知道方法名称对功能并不重要。是的,默认情况下它加载30,您必须测试它是否自动更新,或者您必须调用gridView.invalidate()或gridView.postInvalidate()。感谢您的回复。那么根据您提供的答案,默认情况下它只加载30个图像,一旦调用setTrue(),它将加载所有图像?在它加载所有图像之后,我需要重新加载GridView以便图像显示?为了精确起见:GridView使用ListAdapter。BaseAdapter恰好是其中之一,不是唯一的一个,也不是最简单的一个。您的getView实现看起来也很奇怪。和
setTrue
?那是什么样的方法名?我知道这只是一个例子。作为程序员,我只是假设您知道方法名称对功能并不重要。是的,默认情况下它加载30,您必须测试它是否自动更新,或者您必须调用gridView.invalidate()或gridView.postInvalidate()。