1
我想實現2路數據綁定的WebView和Progressbar。2路數據綁定的Webview和ProgressBar
最初ProgressBar將繼續出現,一旦webview完成加載,進度條應該是GONE。
但我不能夠創建結合
我已經創建綁定適配器的WebView加載網址,並設置WebViewClient檢查頁面加載完成,但不能更新進度的知名度
// ////////////後
@BindingAdapter({"app:webUrl"})
public void configureWebView(WebView iWebView, String iUrl) {
iWebView.getSettings().setJavaScriptEnabled(true);
iWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// code to set visibility of progress bar
}
});
iWebView.loadUrl(iUrl);
}
////////////////////佈局
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="newsUrl"
type="com.example.bindingdemo.data.model.Post" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/news_web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:webUrl="@{newsUrl.url}" />
<ProgressBar
android:id="@+id/news_prog_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="@{**<WhatConditionToWrite>** ? View.GONE: View.Visible}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</layout>
我沒有使用任何視圖模型。只有Model類持有數據和簡單的數據綁定。我們能做到嗎? – Napolean
@Napolean這個模型是ViewModel ^^ –
謝謝Phan。有效。我只是改變了 hideProgress如下訪問器和增變器 public ObservableBoolean hideProgress = new ObservableBoolean(); – Napolean