当webView作为recyclerView的一个布局,导致点击webView返回顶部的问题。
2016-12-07 15:33
465 查看
public class ArticleAdapter extends RecyclerView.Adapter { public static final int HEADER_VIEW = 111; public static final int ITEM_VIEW = 222; private String mWebUrl; private List<String> mList = new ArrayList<>(); public String getWebUrl() { return mWebUrl; } public void setWebUrl(String webUrl) { mWebUrl = webUrl; } public List<String> getList() { return mList; } public void setList(List<String> list) { if (list != null) { mList.clear(); addList(list); } } public void addList(List<String> list) { if (list != null) { mList.addAll(list); notifyDataSetChanged(); } } @Override public int getItemViewType(int position) { if (position == 0) { return HEADER_VIEW; } else { return ITEM_VIEW; } } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == HEADER_VIEW) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_article_header, parent, false); HeaderViewHolder holder = new HeaderViewHolder(view, parent.getContext()); return holder; } else { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_article_normal, parent, false); return new ItemViewHolder(view); } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (holder instanceof HeaderViewHolder) { ((HeaderViewHolder) holder).bindData(mWebUrl); } else { ((ItemViewHolder) holder).binData(mList.get(position - 1)); } } @Override public int getItemCount() { return mList.size() + 1; } /** * 文章详情 */ class HeaderViewHolder extends RecyclerView.ViewHolder { private View mView; private Context mContext; private WebViewClient mWebViewClient; public HeaderViewHolder(View itemView, Context context) { super(itemView); mView = itemView; mContext = context; } public void bindData(String webUrl) { mView.requestFocus(); WebView webView = (WebView) mView.findViewById(R.id.webView); setWebView(webUrl, webView); } } /** * 评论item */ class ItemViewHolder extends RecyclerView.ViewHolder { private View mView; public ItemViewHolder(View itemView) { super(itemView); this.mView = itemView; } public void binData(String string) { TextView textView = (TextView) mView.findViewById(R.id.tv_title); textView.setText(string); } } }以上是代码,红色的为解决办法,原因是因为第一次点击需要获取触摸,第二次点击就不会返回顶部,修改自 webView in recyclerView。
相关文章推荐
- 关于Webview在RecyclerView的第一个条目中,第一次加载时点击回顶部的问题
- android 点击webView中的按钮修改布局问题
- android 加载web view的时候,点击输入框,导致页面放大的问题解决方法
- android——webview拦截跳转指定url后,点击返回界面重定向的问题
- 解决ScrollView嵌套RexyclerView导致6.0以上手机ScrollView和RecyclerView可以同时滑动问题,5.1手机滑动卡顿问题(解决一个另一个又出现)
- android webview点击返回键回到上一个html
- android webview 点击页面输入框导致页面变大问题的解决
- android webview点击返回键返回上一个html
- ListView和RecyclerView点击返回顶部
- webView 无限进入,点击返回,返回到网页的上一个页面,当无返回时,返回到自己的页面
- Android使用WebView嵌入网页,网页内点击跳转到另一个网页后,返回问题解决
- android webview点击返回键回到上一个html
- 在使用Imagepicker时候,点击recyclerView的item,进入删除界面,返回结果为空的问题
- 2017-6-14 关于使用history.go的问题!配合原生应用嵌入H5页面(只有一个webview的的单页应用)返回历史列表记录的问题
- android webview点击返回键返回上一个html
- android webview点击返回键返回上一个html
- Recyclerview 添加webview为header 点击webview 会自动滚动问题
- android webview点击返回键返回上一个html
- 【web布局】点击按钮返回页面顶部的功能实现
- Button被RecyclerView覆盖导致无法点击的问题