Maison > interface Web > Tutoriel H5 > le corps du texte

Utilisez Android pour imiter WeChat pour charger la barre de progression de la page H5

不言
Libérer: 2018-06-12 17:06:27
original
2218 Les gens l'ont consulté

Cet article présente principalement en détail la barre de progression de la page H5 de chargement de l'imitation Android WeChat, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Avant-propos

. Lors de la vérification de la page frontale de WebView sous Android, elle est affectée par l'environnement réseau et la taille du contenu de la page, ce qui fait parfois attendre longtemps les utilisateurs. L'affichage d'une barre de progression de chargement peut grandement améliorer l'expérience. L'effet de chargement de la page H5 accessible dans WeChat est bon, je l'ai donc copié et écrit une.

1. Implémentez

1-1 La classe personnalisée hérite de la classe WebView

.

class ProgressWebView(context: Context, attr: AttributeSet) : WebView(context, attr) {

 /**
 *xml布局中使用,所以用两个构造参数的构造函数
 */

 private var progressBar: ProgressBar? = null

 /**
 *初始化属性操作
 */
 init {

 /**
  *设置ProgressBar是横向
  */
 progressBar = ProgressBar(context, null, android.R.attr.progressBarStyleHorizontal)

 /**
  *设置进度条属性
  */
 progressBar!!.progressDrawable = context.resources.getDrawable(R.drawable.webview_hori_progress)

 /**
  *设置ProgressBar的布局参数
  */
 val layoutParams = FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, 10, 0)

 /**
  *绑定参数
  */
 progressBar!!.layoutParams = layoutParams

 /**
  *将ProgressBar添加到WebView上 默认头部
  */
 addView(progressBar)

 /**
  *设置WebView辅助类WebChromeClient,获取实时加载进度
  */
 setWebChromeClient(object : WebChromeClient() {
  override fun onProgressChanged(webview: WebView?, progress: Int) {
  super.onProgressChanged(webview, progress)

  Log.d("progressView", progress.toString())
  if (progress == 100)
   progressBar!!.visibility = View.GONE
  else {
   progressBar!!.visibility = View.VISIBLE

   /**
   *设置进度参数
   */
   progressBar!!.progress = progress

  }
  }

 })

 }
}
Copier après la connexion

Regardez les propriétés de l'ensemble de barres de progression de chargement, webview_hori_progress.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

 <!--最下层item属性-->
 <item>
 <shape>
  <!--无圆角-->
  <corners android:radius="0dp" />
  <!--线条颜色-->
  <gradient
  android:endColor="#FFE4E3E3"
  android:startColor="#FFE4E3E3" />
 </shape>
 </item>

 <!--上层item属性-->
 <item>
 <clip>
  <shape>
  <!--无圆角-->
  <corners android:radius="0dip" />
  <!--线条颜色 渐变,由深到浅-->
  <gradient
   android:centerColor="#96EF1627"
   android:endColor="#50F53D4B"
   android:startColor="#FFEF1627" />
  </shape>
 </clip>
 </item>
</layer-list>
Copier après la connexion

1-2.xml référencé dans la mise en page

 <com.ypl.csdndemo.ProgressWebView
 android:id="@+id/wvProgress"
 android:layout_width="match_parent"
 android:layout_height="match_parent"/>
Copier après la connexion

1- 3. Réalisation du code

 /**
 *android kotlin 的拓展,导入此包 使用到的组件不用findViewById
 */
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

 override fun onCreate(savedInstanceState: Bundle?) {
 super.onCreate(savedInstanceState)

 setContentView(R.layout.activity_main)

 /**
  *WebView设置属性
  */
 val setting = wvProgress.settings

 /**
  *本地缓存无则网络
  */
 setting.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK

 /**
  *设置识别javascript代码
  */
 setting.javaScriptEnabled = true

 /**
  *纵向scrollbar去除
  */
 wvProgress.isVerticalScrollBarEnabled =false

 /**
  *加载页面
  */
 wvProgress.loadUrl("https://blog.csdn.net/")
 }
}
Copier après la connexion

2. Rendu

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Utilisez CSS pour implémenter un bouton de commutation de type iOS7

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!