2016-06-23 22 views
1

Ich habe eine Liste von Webview, um verschiedene pdf's zu zeigen, ich muss es in einem horizontalen RecyclerView zeigen, aber das Problem ist, dass, wenn ich es horizontal scrollen, der kommende webview gerade auf den aktuellen geht und der aktuelle, anstatt auf die linke Seite zu verschieben, bleibt es in seiner Position. Es sieht ein bisschen komisch aus.Webview im recyclerview

Das ist mein RecyclerViewAdapter

public class HorizontalManual erweitert RecyclerView .Adapter {

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(); 
} 

}

Ich gründe die Horizontallist in meinem Fragment ist wie folgt:

mRecyclerViewManual.setHasFixedSize(true); 
rLayoutManagerManual = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);     mRecyclerViewManual.setLayoutManager(rLayoutManagerManual); 
//Setting adapter 
HorizontalManual setUploadsListAdapterManual = new HorizontalManual(context, list);     mRecyclerViewManual.setAdapter(setUploadsListAdapterManual); 
+0

Bitte geben Sie Ihren Code hier ein @ Syed – Lampard

+0

@CrazyAndroid, hier ist der Code meines RecyclerViewAdapter namens HorizontalManual –

+0

Wo setzen Sie den DataObjectHolder in Ihrer Aktivität, bitte zeigen Sie es. @ Syed – Lampard

Antwort

0
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");