Android SwipeRefreshLayout谷歌官方下拉刷新加载WebView网页介绍
2014-08-22 13:59
645 查看
Android SwipeRefreshLayout谷歌官方下拉刷新加载WebView网页
这个下拉刷新很简单,但是效果还是很炫酷的,使用的话需要android -support-v4的支持,但是一定要带入这个jar是正确的,要是报错就导入外加的jar包,android -support-v4包出错的解决方案,网上有很多帖子,可以自己去看看。
这个是我从我的项目里面提取的,可运行,欢迎下载测试
下面是java代码
对了,这是要联网的,哥们儿还得加上权限才可以访问网络:<uses-permission android:name="android.permission.INTERNET"/>
上传的Demo上从我项目里面提取的,测试可用,觉得还可以的哥们儿给个好评吧
Demo下载地址:点击打开链接
这个下拉刷新很简单,但是效果还是很炫酷的,使用的话需要android -support-v4的支持,但是一定要带入这个jar是正确的,要是报错就导入外加的jar包,android -support-v4包出错的解决方案,网上有很多帖子,可以自己去看看。
这个是我从我的项目里面提取的,可运行,欢迎下载测试
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:background="@drawable/actionbar_bg" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="资讯" android:textColor="#FFFFFF" android:textSize="26sp" /> <ImageView android:id="@+id/goBackRF" android:layout_width="45dp" android:layout_height="45dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_margin="5dp" android:background="@drawable/return_left" /> </RelativeLayout> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_container" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" > <WebView android:id="@+id/mWebViewRF" android:layout_margin="3dp" android:layout_width="match_parent" android:layout_height="wrap_content" /> </ScrollView> </android.support.v4.widget.SwipeRefreshLayout> </LinearLayout>
下面是java代码
package com.example.refreshtest; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.graphics.Bitmap; import android.support.v4.widget.SwipeRefreshLayout; import android.view.KeyEvent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener{ private SwipeRefreshLayout swipeLayout; private ImageView ib_goBack; private WebView webView; private ImageView iv_goBackRF; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_refresh_test); swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container); swipeLayout.setOnRefreshListener(this); swipeLayout.setColorScheme(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); iv_goBackRF = (ImageView) findViewById(R.id.goBackRF); webView = (WebView) findViewById(R.id.mWebViewRF); /** * 如果页面中链接,如果希望点击链接继续在当前的browser中响应,而不是打开android系统中的browser来接在 * 那么就必须覆盖webview中的WebViewClient对象 */ webView.setWebViewClient(new WebViewClient(){ //让新打开的网页在当前的webview中显示 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } //网页开始加载 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super.onPageStarted(view, url, favicon); swipeLayout.setRefreshing(true); } //网页加载完毕 @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url); swipeLayout.setRefreshing(false); } //重新请求网页数据 @Override public void onFormResubmission(WebView view, Message dontResend, Message resend) { // TODO Auto-generated method stub super.onFormResubmission(view, dontResend, resend); } }); webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); MainActivity.this.setProgress(newProgress*100); } }); webView.loadUrl("http://www.51ltx.com/service/GetHtml.aspx?Type=IndexInfo"); iv_goBackRF.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if(webView.canGoBack()) { webView.goBack(); } else { Toast.makeText(MainActivity.this, "已到最后了!", Toast.LENGTH_SHORT).show(); } } }); } /** * 如果不做任何处理,浏览网页,点击系统“Back”键,整个browser会调用finish()而结束本身,如果希望浏览的网页是回退 * 而不是退出浏览器,那么就需要在在当前的Activity中处理并消费掉Back事件 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(webView.canGoBack()) { webView.goBack(); } return true; } public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { webView.loadUrl(webView.getUrl()); swipeLayout.setRefreshing(false); } }, 3000); } }
对了,这是要联网的,哥们儿还得加上权限才可以访问网络:<uses-permission android:name="android.permission.INTERNET"/>
上传的Demo上从我项目里面提取的,测试可用,觉得还可以的哥们儿给个好评吧
Demo下载地址:点击打开链接
相关文章推荐
- Android中【下拉刷新/上拉加载】WebView网页控件,Snackbar+CoordinatorLayoutt提示框(指定位置显示的提示框)
- android 自定义下拉刷新上拉加载控件(SwipeRefreshLayout + recyclerView)
- Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新
- Android 下拉刷新控件SwipeRefreshLayout结合WebView使用
- Android 下拉刷新控件SwipeRefreshLayout结合WebView使用
- android-- 自定义下拉刷新上拉加载控件(SwipeRefreshLayout + recyclerView)
- Android 下拉刷新控件SwipeRefreshLayout结合WebView使用
- Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新类似QQ的下拉刷新一样的
- Android 下拉刷新控件SwipeRefreshLayout结合WebView使用
- [Android实例] Android 6.0RecyclerView SwipeRefreshLayout 下拉刷新 上拉加载
- Android 下拉刷新控件SwipeRefreshLayout结合WebView使用
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- Android中的WebView进行直接加载网页(要注意解决权限问题)
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- Android WebView 加载网页
- android WebView, WebChromeClient跟WebViewClient加载网页基本用法
- Android使用原生组件WebView加载网页和数据的方法
- Android--当webview加载网页的时候在标题栏上显示加载进度
- Android中使用WebView, WebChromeClient和WebViewClient加载网页
- Android中使用WebView, WebChromeClient和WebViewClient加载网页