實現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
- RecyclerView使用指南(五)—— 實現吸頂效果View
- [前端外掛] js返回頂部 效果實現前端JS
- Android RecyclerView實現頭部懸浮吸頂效果AndroidView
- Web 頁面如何實現動畫效果Web動畫
- 搭建直播平臺,uniapp捲軸置頂實現APP
- 直播軟體搭建,利用原生JS實現回到頂部以及吸頂效果JS
- app直播原始碼,利用原生JS實現回到頂部以及吸頂效果APP原始碼JS
- 直播軟體原始碼,uniapp捲軸置頂實現原始碼APP
- web 中怎麼實現斜線表頭效果?Web
- “吸頂”效果
- Web 端 實現 app “輸入驗證碼 ”的效果WebAPP
- Sql 查詢 置頂、排序,置頂和非置頂為不同的排序欄位SQL排序
- 置頂4
- 專案常用效果!Flutter仿頭條頂部tab切換實現!Flutter
- Vue 置頂元件FixedTopWrap 支援自定義內容置頂Vue元件
- 實現聚焦效果
- web 端展現報表資料時如何實現摺疊展開效果?Web
- [置頂]筆記合集筆記
- 短視訊直播原始碼,實現頂部導航欄背景圖片漸隱漸現效果原始碼
- css 實現打分效果CSS
- webgl實現火焰效果Web
- webgl實現故障效果Web
- js實現打字效果JS
- canvas實現波浪效果Canvas
- CSS實現鏤空效果CSS
- Axure實現輪播效果
- WPF 實現陰影效果
- Flutter——實現閃爍效果Flutter
- jQuery實現輪播效果jQuery
- 文字印表機 效果實現
- 使用 CSS 實現透明效果CSS
- CSS 如何實現羽化效果?CSS
- jQuery文字從頂部掉落效果jQuery
- 大頂堆的python實現Python
- 如何實現SAP UI5 Web Component React控制元件的載入效果UIWebReact控制元件