GithubHelp home page GithubHelp logo

w4lle / ninegridview Goto Github PK

View Code? Open in Web Editor NEW

This project forked from panyiho/ninegridview

249.0 9.0 49.0 2.41 MB

一个九宫格自定义控件,实现类似微信和微博的九宫格图片显示

Java 100.00%

ninegridview's Issues

是不是多余的requestLayout?

第90行: requestLayout(); 是不是多余重复的呢?
因为遍历addView(child)的时候父类函数内部已经requestlayout()了

Adapter内部类出现java.lang.ClassCastException异常

你好 我在使用的时候Adapter内部类出现了java.lang.ClassCastException异常,想请教一下
tim 20170729200913
我的Adapter代码:
`
public class WeiboAdapter extends RecyclerView.Adapter<WeiboAdapter.ViewHolder> {

private Context context;
private List<Statuses> statuses;
private  List<List<Image>> imagesList;

static class ViewHolder extends RecyclerView.ViewHolder{
    CardView cardView;
    ImageView user_icon;
    TextView user_name;
    TextView weibo_time;
    TextView weibo_content;
    ImageButton forward;
    ImageButton comment;
    ImageButton like;
    ImageButton more;
    NineGridlayout pic;

    public ViewHolder(View itemView) {
        super(itemView);
        cardView= (CardView) itemView;
        user_icon= (ImageView) itemView.findViewById(R.id.user_image);
        user_name= (TextView) itemView.findViewById(R.id.user_name);
        weibo_time= (TextView) itemView.findViewById(R.id.time_weibo);
        weibo_content= (TextView) itemView.findViewById(R.id.weibo_content);
        forward= (ImageButton) itemView.findViewById(R.id.resend);
        comment= (ImageButton) itemView.findViewById(R.id.comment);
        like= (ImageButton) itemView.findViewById(R.id.like);
        more= (ImageButton) itemView.findViewById(R.id.more_user);
        pic= (NineGridlayout) itemView.findViewById(R.id.iv_ngrid_layout);
    }
}

public WeiboAdapter(List<Statuses> mstatuses, List<List<Image>> datalist) {
    statuses = mstatuses;
    imagesList = datalist;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (context==null){
        context=parent.getContext();
    }
    View view= LayoutInflater.from(context).inflate(R.layout.weibo_item,parent,false);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    Statuses statuses1=statuses.get(position);
    Glide.with(context).load(R.drawable.adv).into(holder.user_icon);
    holder.weibo_content.setText(statuses1.getText().toString());
    User user=statuses1.getUser();
    holder.user_name.setText(user.getScreen_name());
    holder.weibo_time.setText(statuses1.getCreated_at());
    List<Pic_urls> list = statuses1.getPic_urls();
    System.out.println("Pic list:"+list.size());
    imagesList=new ArrayList<>();
    for (int i = 0; i < statuses.size(); i++) {
        ArrayList<Image> templist=new ArrayList<>();
        for (int j = 0; j < list.size(); j++) {
            Image image=new Image(list.get(j).getThumbnail_pic(),45,45);
            templist.add(image);
        }
        imagesList.add(templist);
    }
    Log.w(TAG, "onBindViewHolder: "+imagesList );
    List<Image> itemList = imagesList.get(position);
    if (itemList.isEmpty() || itemList.isEmpty()) {
        holder.pic.setVisibility(View.GONE);
    } else {
        holder.pic.setVisibility(View.VISIBLE);
        holder.pic.setAdapter(new Adapter(context, imagesList));
    }
}

@Override
public int getItemCount() {
    return statuses.size();
}


class Adapter extends NineGridAdapter {

    public Adapter(Context context, List list) {
        super(context, list);
    }

    @Override
    public int getCount() {
        return (list == null) ? 0 : list.size();
    }

    @Override
    public String getUrl(int position) {
        return getItem(position) == null ? null : ((Image) getItem(position)).getUrl();
    }

    @Override
    public Object getItem(int position) {
        return (list == null) ? null : list.get(position);
    }

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

    @Override
    public View getView(int i, View view) {
        ImageView iv = null;
        if (view != null && view instanceof ImageView) {
            iv = (ImageView) view;
        } else {
            iv = new ImageView(context);
        }
        iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
        iv.setBackgroundColor(context.getResources().getColor((android.R.color.transparent)));
        String url = getUrl(i);
        Picasso.with(context).load(getUrl(i)).placeholder(new ColorDrawable(Color.parseColor("#f5f5f5"))).into(iv);
        if (!TextUtils.isEmpty(url)) {
            iv.setTag(url);
        }
        return iv;
    }
}

}
`
请求指点一下,谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.