0

画像を非同期でロードする前に、大量の ListViews を実行しました。しかし、これは遅れています

これをログに記録すると、小さなラグが発生します

09-19 21:13:32.980: I/endeffect(23824): AbsListView.onMeasure(), getWidth()=1080, getHeight()=561, this=android.widget.ListView{43c94550 VFED.VC. ......ID 0,120-1080,681 #7f0501c1 app:id/sliding_drawer_lv}

コードは次のとおりです。

public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder mViewHolder;
    long ts = System.currentTimeMillis();
    if(convertView==null){
        convertView = inflater.inflate(R.layout.list_item_routes_search, null);

        mViewHolder = new ViewHolder();
        mViewHolder.pictureNIV = (NetworkImageView)convertView.findViewById(R.id.my_fav_route_image_iv);
        mViewHolder.pictureNIV.setVisibility(View.GONE);

        mViewHolder.titleTv=(TextView)convertView.findViewById(R.id.my_fav_route_item_title_tv);
        mViewHolder.eventTv=(TextView)convertView.findViewById(R.id.my_fav_route_item_event_tv);
        mViewHolder.createdTv=(TextView)convertView.findViewById(R.id.my_fav_route_item_created_tv);
        mViewHolder.createdTv=(TextView)convertView.findViewById(R.id.my_fav_route_item_created_tv);
        App.setFont('m', mViewHolder.titleTv,mViewHolder.eventTv);
        App.setFont('l', mViewHolder.createdTv);

        mViewHolder.extraViewLL= (LinearLayout) convertView.findViewById(R.id.my_fav_route_item_extra_ll);
        mViewHolder.contentViewLL = (LinearLayout) convertView.findViewById(R.id.my_fav_route_item_content_ll);
        mViewHolder.closeBtn = (Button) convertView.findViewById(R.id.my_fav_route_item_close_btn);
        mViewHolder.favoriteTb = (ToggleButton)convertView.findViewById(R.id.my_fav_route_item_extra_fav_tb);
        mViewHolder.shareBtn = (Button)convertView.findViewById(R.id.my_fav_route_item_extra_share_btn);
        mViewHolder.rlp = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);

        convertView.setTag(mViewHolder);
    }
    else{
        mViewHolder = (ViewHolder) convertView.getTag();
    }

次に、Volleys NetworkImageView で画像を設定しましたが、delayed で Aq も試しました。

mViewHolder.pictureNIV.setImageUrl(getItem(position).images.getImageNormal(),App.mVolleyImageLoader);
4

1 に答える 1

0

ListView の高さは wrap_parent に設定されました。これにより、ビューが自己再計算する必要があったようです。

于 2013-09-19T20:05:46.010 に答える