1

私は3つのフラグメントを持つビューページャーを用意しました。私のビューページの最初のページには、データベースのデータが含まれています。データがロードされる直前の最初のページだけの進捗バーを実装するにはどうすればよいですか。私のビューページの最初のページのプログレスバー

カスタムフラグメント=>

public class HomeContentFragment extends Fragment { 
    public static ArrayList<ShishaBar> arrayList; 
    public static ContentAdapter adapter; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     RecyclerView recyclerView = (RecyclerView) inflater.inflate(
       R.layout.recycler_view, container, false); 
     adapter = new ContentAdapter(); 
     recyclerView.setAdapter(adapter); 
     recyclerView.setHasFixedSize(true); 
     recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 

     new BackgroundWorker().execute(); 
     return recyclerView; 
    } 

    public static class ViewHolder extends RecyclerView.ViewHolder { 
     public ImageView picture; 
     public TextView name; 
     public TextView description; 
     public ViewHolder(LayoutInflater inflater, ViewGroup parent) { 
      super(inflater.inflate(R.layout.item_card, parent, false)); 
      picture = (ImageView) itemView.findViewById(R.id.card_image); 
      name = (TextView) itemView.findViewById(R.id.card_title); 
      description = (TextView) itemView.findViewById(R.id.card_text); 
      itemView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Context ctx = v.getContext(); 
        Intent intent = new Intent(ctx, DetailActivity.class); 
        intent.putExtra(DetailActivity.EXTRA_POSITION, getAdapterPosition()); 
        ctx.startActivity(intent); 
       } 
      }); 
     } 
    } 

    public static class ContentAdapter extends RecyclerView.Adapter<ViewHolder> { 

     public ContentAdapter() { 
      arrayList = new ArrayList<>(); 
     } 

     @Override 
     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
      return new ViewHolder(LayoutInflater.from(parent.getContext()), parent); 
     } 

     @Override 
     public void onBindViewHolder(ViewHolder holder, int position) { 
      holder.picture.setImageBitmap(arrayList.get(position).getImage()); 
      holder.name.setText(arrayList.get(position).getName()); 
      holder.description.setText(arrayList.get(position).getStraat()+ " " + arrayList.get(position).getHuisnr()+ ", "+arrayList.get(position).getStad()); 
     } 

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


} 

私はviewpagerにプログレスバーを入れた場合は、すべてのページは、プログレスバーを取得し、私は最初のページにそれをしたいです。また、私のcard_viewのxmlにプログレスバーを置くと、データがロードされるまでプログレスバーが表示されません。 ViewPagerのアダプタで

答えて

1

、のようなページのインデックスを確認してください。

public void instantiateItem(...,int position){ 
    if(position == 0){ 
     /* inflate a view that contains the ProgressBar and process it */ 
    ... 
    } 
} 
関連する問題