recyclerview 中的 Webview

Webview in recyclerview

我有一个 webview 列表来显示不同的 pdf,我需要在水平 RecyclerView 中显示它,但问题是当我水平滚动它时,即将到来的 webview 只是在当前 webview 之上,而当前的一个而不是移动到左侧,它保持在它的位置。看起来有点奇怪。

这是我的 RecyclerViewAdapter

public class Horizo​​ntalManual 扩展了 RecyclerView .适配器{

Context context;
private ArrayList<String> list;

public class DataObjectHolder extends RecyclerView.ViewHolder {
    ImageView imgUploaded;ProgressBar loader; WebView webViewManual;

    public DataObjectHolder(View itemView) {
        super(itemView);
        webViewManual = (WebView) itemView.findViewById(R.id.pdf_manual_webView);
    }
}


public HorizontalManual(Context context, ArrayList<String> list) {
    this.context = context;
    this.list = list;
}


@Override
public DataObjectHolder onCreateViewHolder(ViewGroup parent,
                                           int viewType) {

    View view = null;
    try {
        view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.horz_pdf, parent, false);
        if (view.getLayoutParams ().width == RecyclerView.LayoutParams.MATCH_PARENT)
            view.getLayoutParams ().width = parent.getWidth ();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return new DataObjectHolder(view);
}


@Override
public void onBindViewHolder(final DataObjectHolder holder, final int position) {

    String url = "http://docs.google.com/gview?embedded=true&url=" + list.get(position);
    Log.e("pdf",url);
    WebSettings websettings = holder.webViewManual.getSettings();
    websettings.setJavaScriptEnabled(true);
    holder.webViewManual.loadUrl(url);

    holder.webViewManual.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            holder.webViewManual.loadUrl("javascript:(function() { " +
                    "document.getElementsByClassName('ndfHFb-c4YZDc-GSQQnc-LgbsSe ndfHFb-c4YZDc-to915-LgbsSe VIpgJd-TzA9Ye-eEGnhe ndfHFb-c4YZDc-LgbsSe')[0].style.display='none'; })()");
        }
    });
    holder.webViewManual.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return true;
        }
    });
    holder.webViewManual.setHorizontalScrollBarEnabled(false);
}


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

}

我在 Fragment 中这样设置 Horizo​​ntalList:

mRecyclerViewManual.setHasFixedSize(true);
rLayoutManagerManual = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);                    mRecyclerViewManual.setLayoutManager(rLayoutManagerManual);
//Setting adapter
HorizontalManual setUploadsListAdapterManual = new HorizontalManual(context, list);                    mRecyclerViewManual.setAdapter(setUploadsListAdapterManual);
 Load you google doc url using iframe tag as shown below.

 String frameVideo = "<html><body>Youtube video .. <br> <iframe width=\"320\" height=\"315\" src=\"https://docs.google.com/gview?embedded=true&url=http://Dealerapp.ebunch.ca/upload/wl/manuals/7.pdf\" frameborder=\"0\" allowfullscreen></iframe></body></html>";

        holder.webView.loadData(frameVideo, "text/html", "utf-8");