實現web置頂效果
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.lawyee.mycelue.web.Main4Activity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@color/colorPrimaryDark"
android:orientation="horizontal">
<Button
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回" />
<TextView
android:textColor="@android:color/white"
android:layout_gravity="center|center_horizontal"
android:gravity="center"
android:maxLength="8"
android:ellipsize="end"
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:id="@+id/btn_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="重新整理" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.lawyee.mycelue.web.MyWebView
android:id="@+id/web_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
</com.lawyee.mycelue.web.MyWebView>
<Button
android:id="@+id/btn_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:text="置頂"/>
</RelativeLayout>
</LinearLayout>
- 自定義webview滑動介面
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if (scrollChangedCallback!=null){
scrollChangedCallback.onScroll(l-oldl,t-oldt);
}
}
public OnScrollChangedCallback scrollChangedCallback;
public void setScrollChangedCallback(OnScrollChangedCallback scrollChangedCallback) {
this.scrollChangedCallback = scrollChangedCallback;
}
public interface OnScrollChangedCallback{
public void onScroll(int dx,int dy);
}
實現的activity
private void initView() {
WebSettings settings = webContent.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setLoadsImagesAutomatically(true);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
settings.setUseWideViewPort(true);
btnTop.setVisibility(View.GONE);
settings.setLoadWithOverviewMode(true);
webContent.loadUrl("http://www.baidu.com");
webContent.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
//設定標題
webContent.setWebChromeClient(new WebChromeClient(){
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
tvTitle.setText(title);
}
});
//處理滑動時是否顯示置頂按鈕
webContent.setScrollChangedCallback(new MyWebView.OnScrollChangedCallback() {
@Override
public void onScroll(int dx, int dy) {
if (dy > 0) {
btnTop.setVisibility(View.VISIBLE);
} else {
btnTop.setVisibility(View.GONE);
}
}
});
}
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if ((keyCode == KEYCODE_BACK) && webContent.canGoBack()) {
// webContent.goBack();
// return true;
// }
// return super.onKeyDown(keyCode, event);
// }
@Override
public void onBackPressed() {
if (webContent.canGoBack()) {
webContent.goBack();
} else {
super.onBackPressed();
}
}
@OnClick({R.id.btn_back, R.id.btn_refresh, R.id.btn_top})
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_back:
if (webContent.canGoBack()) {
webContent.goBack();
} else {
super.onBackPressed();
}
break;
case R.id.btn_refresh:
webContent.reload();
break;
case R.id.btn_top://置頂按鈕
webContent.scrollTo(0,0);
btnTop.setVisibility(View.GONE);
break;
}
}
相關文章
- Vue開發——實現吸頂效果Vue
- PbootCMS模板如何實現產品置頂boot
- [前端外掛] js返回頂部 效果實現前端JS
- RecyclerView使用指南(五)—— 實現吸頂效果View
- 實現列表懸浮標籤「頂上去」的效果
- Web 頁面如何實現動畫效果Web動畫
- 直播軟體搭建,利用原生JS實現回到頂部以及吸頂效果JS
- app直播原始碼,利用原生JS實現回到頂部以及吸頂效果APP原始碼JS
- 搭建直播平臺,uniapp捲軸置頂實現APP
- Android RecyclerView實現頭部懸浮吸頂效果AndroidView
- 點選返回頂部效果實現程式碼詳解
- 安卓當下最流行的吸頂效果的實現安卓
- css實現網頁”回到頂部“的程式碼效果CSS網頁
- 直播軟體原始碼,uniapp捲軸置頂實現原始碼APP
- Sql 查詢 置頂、排序,置頂和非置頂為不同的排序欄位SQL排序
- Android 最流行的吸頂效果的實現及程式碼Android
- web 中怎麼實現斜線表頭效果?Web
- Vue 置頂元件FixedTopWrap 支援自定義內容置頂Vue元件
- 專案常用效果!Flutter仿頭條頂部tab切換實現!Flutter
- Web 端 實現 app “輸入驗證碼 ”的效果WebAPP
- [置頂]筆記合集筆記
- 實現聚焦效果
- 短視訊直播原始碼,實現頂部導航欄背景圖片漸隱漸現效果原始碼
- [置頂] SQL日期型別SQL型別
- web 端展現報表資料時如何實現摺疊展開效果?Web
- [置頂]【實用 .NET Core開發系列】- 導航篇
- webgl實現故障效果Web
- webgl實現火焰效果Web
- css 實現打分效果CSS
- js實現打字效果JS
- canvas實現波浪效果Canvas
- React實現動畫效果React動畫
- iOS全景效果實現iOS
- Javascript實現動畫效果JavaScript動畫
- 如何實現倒影效果
- HT for Web中3D流動效果的實現與應用Web3D
- jQuery文字從頂部掉落效果jQuery
- 仿京東、淘寶首頁,通過兩層巢狀的RecyclerView實現tab的吸頂效果巢狀View