0
。 GridViewコントロールは、最初のiは、ホルダー内の任意のコントロールに最初の項目をクリックすると、初期化、私は少しのGridViewをスクロールするまで、それは文句を言わない対応ノートを表示したときに、ここで グリッドの子ビューを作成するベースアダプタを使用し、ホルダービューに2つ以上のクリック可能なコントロールがあり、それぞれがアクションを実行すると、ベースアダプタがグリッドビューの最初のアイテムを最初にクリックしたときにGridViewの最初のアイテムにスクロールするまで応答しない
はgetViewメソッド()メソッドのコードpublic View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.book_item_to_download, parent, false);
convertView.setFocusable(true);
convertView.setClickable(true);
holderGridView = new BooksViewHolder();
holderGridView.BookImage = (ImageView) convertView.findViewById(R.id.bookBackground);
holderGridView.BookName = (TextView) convertView.findViewById(R.id.bookName);
holderGridView.BookItemWraper = (LinearLayout) convertView.findViewById(R.id.book_item_wraper);
holderGridView.BookDownload=(ImageView) convertView.findViewById(R.id.download);
holderGridView.BookProgress=(CircularProgressBar) convertView.findViewById(R.id.demo_mpc);
Typeface custom_font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Isra-Thin.ttf");
holderGridView.BookName.setTypeface(custom_font);
convertView.setTag(holderGridView);
} else {
holderGridView = (BooksViewHolder) convertView.getTag();
}
holderGridView.BookItemWraper.setLayoutParams(new android.widget.AbsListView.LayoutParams((int) Math.round(ScreenWidth/2.1), (int) Math.round(ScreenHeight/2.5)));
holderGridView.BookImage.setImageDrawable(getResources().getDrawable(R.drawable.book_background));
holderGridView.BookName.setText(bookCovers.get(position).getBookTitle());
ImageView image = holderGridView.BookImage;
//DisplayImage function from ImageLoader Class
imageLoader.DisplayImage(bookCovers.get(position).getBookImageURL(), image);
if(bookCovers.get(position).isDownloaded)
{
holderGridView.BookDownload.setVisibility(View.GONE);
holderGridView.BookProgress.setVisibility(View.GONE);
holderGridView.BookItemWraper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0;i<app.bis.size();++i)
{
if(app.bis.get(i).identifier.equals(bookCovers.get(position).getBookID()+""))
{
openBookViewer(app.bis.get(i));
break;
}
}
}
});
}
else if(bookCovers.get(position).isDownloading)
{
holderGridView.BookDownload.setVisibility(View.GONE);
holderGridView.BookProgress.setVisibility(View.VISIBLE);
holderGridView.BookProgress.setProgress(bookCovers.get(position).downloadProgress);
holderGridView.BookItemWraper.setOnClickListener(null);
}
else {
holderGridView.BookDownload.setVisibility(View.VISIBLE);
holderGridView.BookProgress.setVisibility(View.GONE);
holderGridView.BookItemWraper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent openDetails = new Intent(getActivity(), WaitingBookDetails_Activity.class);
openDetails.putExtra(Constants.BOOK_COVER, Parcels.wrap(bookCovers.get(position)));
startActivity(openDetails);
}
});
holderGridView.BookDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new downloadEPUB_Task(bookCovers.get(position), position).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
});
}
return convertView;
}
です:のみ当初アプリケーションが最初にクリックされたときの最初のクリックは残りのクリックよりもうまくいき、LazyLoadingを使用してImageViewにホルダービューで画像を読み込み、スローなデバイスでもスクロールのパフォーマンスは素晴らしいです私は推測する。 ご協力いただきありがとうございます。
それは動作しませんでしたし、私は、グリッド内の唯一の最初の項目がないことを発見したので、私は今、私の質問を編集しましたこの動作は、あなたが今それを –
私はあなたがそれを試してみてくださいコードを編集していた場合は、あなたの答えを編集して自由に感じてください。 –
それはうまくいきませんし、私はholdGridView.BookItemWraperが本の状態に応じて異なるonClickListenerを持っているので、私はそれを試しても動作しませんでした。とにかくありがとう –