我使用XWalkView加载网页,如下所示:
<org.xwalk.core.XWalkView android:id="@+id/webview"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</org.xwalk.core.XWalkView>活动
XWalkView mXWalkView = (XWalkView) findViewById(R.id.webview);
mXWalkView.load("http://xxxxxxxx", null);有关实现XWalkView的详细信息,请参阅my this post。
但是现在,由于页面内容太多,它会调用4~5秒来完成加载。这将导致应用程序页面空白。我想添加XWalkView的加载进度。由于XWalkView的演示很少,我真的不知道从哪里开始。
任何帮助都将不胜感激。桑斯克!
编辑:在我尝试了@Srihari的答案之后,另一个奇怪的问题出来了。THe进度显示良好,当它完成100%时,它消失了。但在页面加载完成后不久,它又以100%的速度跳了出来,并且再也没有消失过。
活动:
class ResourceClient extends XWalkResourceClient {
public ResourceClient(XWalkView xwalkView) {
super(xwalkView);
}
public void onLoadStarted(XWalkView view, String url) {
mProgress = (ProgressBar) findViewById(R.id.progressBar);
mProgress.setVisibility(View.VISIBLE);
super.onLoadStarted(view, url);
Log.d("INFO", "Load Started:" + url);
}
public void onLoadFinished(XWalkView view, String url) {
super.onLoadFinished(view, url);
Log.d("INFO", "Load Finished:" + url);
bottomBar = (BottomBar) findViewById(R.id.bottomBar);
mProgress = (ProgressBar) findViewById(R.id.progressBar);
mProgress.setVisibility(View.GONE);
}
public void onProgressChanged(XWalkView view, int progressInPercent) {
super.onProgressChanged(view, progressInPercent);
Log.d("INFO", "Loading Progress:" + progressInPercent);
mProgress = (ProgressBar) findViewById(R.id.progressBar);
mProgress.setProgress(progressInPercent);
}xml
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_marginTop="50dp" />发布于 2017-06-25 08:38:09
在我解决我的问题之前,我去麦加做乌姆拉,我试了2天来解决问题,在乌拉之后,我花了2分钟来解决我的问题,我的上帝帮助我。
请不要删除我们从上帝那里得到的一切
你需要向上帝祈祷,你会得到你想要的一切吗?
这是我的MainActivity
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.View;
import android.webkit.ValueCallback;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import org.xwalk.core.XWalkPreferences;
import org.xwalk.core.XWalkResourceClient;
import org.xwalk.core.XWalkUIClient;
import org.xwalk.core.XWalkView;
import static com.github.crazyorr.embeddedcrosswalk.R.string.url;
public class MainActivity extends AppCompatActivity {
private XWalkView mXWalkView;
private FrameLayout frameLayout;
private SwipeRefreshLayout swipe;
private ProgressBar progressBar;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frameLayout = (FrameLayout) findViewById(R.id.framelayout);
progressBar = (ProgressBar) findViewById(R.id.ProgressBar);
swipe= (SwipeRefreshLayout) findViewById(R.id.swipe);
swipe.setColorSchemeResources(R.color.orange, R.color.green, R.color.blue, R.color.purple);
swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh()
{mXWalkView.reload(url);}
});
loadweb();
}
public void loadweb(){
mXWalkView = (XWalkView) findViewById(R.id.webview);
mXWalkView.setResourceClient(new ResourceClient(mXWalkView));
mXWalkView.setUIClient(new XWalkUIClient(mXWalkView) {
@Override
public void onPageLoadStarted(XWalkView view, String url) {
frameLayout.setVisibility(View.VISIBLE);
progressBar.setVisibility(ProgressBar.VISIBLE);
}
@Override
public void onPageLoadStopped(XWalkView view, String url, XWalkUIClient.LoadStatus status) {
progressBar.setVisibility(view.GONE);
swipe.setRefreshing(false);
}
});
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
mXWalkView.getSettings().setJavaScriptEnabled(true);
mXWalkView.loadUrl("https://www.google.com.sa");
}
class ResourceClient extends XWalkResourceClient {
public ResourceClient(XWalkView xwalkView) {
super(xwalkView);
}
public void onProgressChanged(XWalkView view, int progressInPercent){
frameLayout.setVisibility(View.VISIBLE);
progressBar.setProgress(progressInPercent);
if (progressInPercent == 100){
frameLayout.setVisibility(View.GONE);
}
super.onProgressChanged(view, progressInPercent);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public void onBackPressed() {
mXWalkView.evaluateJavascript("onBackPressed()", new ValueCallback<String>() {
@Override
public void onReceiveValue(final String value) {
if (!Boolean.valueOf(value)) {
MainActivity.super.onBackPressed();
}
}
});
}
}我希望这能帮助你
发布于 2016-12-27 16:51:14
显示活动或片段进度条onCreate。
xWalkView.setResourceClient(new XWalkResourceClient(xWalkView){
@Override
public void onLoadFinished(XWalkView view, String url) {
super.onLoadFinished(view, url);
// Stop your progress bar here
}
});希望这能帮助你..
发布于 2017-06-24 12:35:34
我解决了activity_main中的问题:
<org.xwalk.core.XWalkView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/framelayout"
android:layout_width="match_parent"
android:layout_height="3dp"
android:background="@android:color/transparent"
android:visibility="visible"></FrameLayout>
<ProgressBar
android:id="@+id/ProgressBar"
style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Large"
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_gravity="top"
android:layout_marginTop="3dp"
android:background="@android:color/transparent"
android:progress="10"
android:progressDrawable="@drawable/custom_progress" />
</org.xwalk.core.XWalkView>https://stackoverflow.com/questions/41341732
复制相似问题