【问题标题】:Show/Hide webview issue显示/隐藏 webview 问题
【发布时间】:2011-10-29 22:58:50
【问题描述】:

我正在一个应用程序中工作,该应用程序在同一个视图中具有一组按钮和一个 Web 视图(GONE),当应用程序启动时它只显示按钮,单击它会显示 Web 视图并加载一个url(按钮设置为 GONE 的布局),其中包含一个 Flash 媒体播放器和一个按钮,当单击它时,它会使 Web 视图再次不可见,并显示包含按钮的第一个布局,以便能够选择不同的网站,问题是当网络视图不可见时,Flash 媒体播放器停留在屏幕上并阻止按钮,我该如何解决这个问题?如果媒体播放器留在按钮后面,那也没关系,但我找不到答案,任何帮助将不胜感激,谢谢。

更新代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_width="match_parent" android:orientation="vertical">
    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Web 1" android:id="@+id/buttonWeb1"></Button>
    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/buttonWeb2" android:text="Web 2"></Button>
    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Web 3" android:id="@+id/buttonWeb3"></Button>
</LinearLayout>
<LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout2" android:layout_width="match_parent" android:orientation="vertical">
    <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/buttonBack" android:text="Back to Buttons"></Button>
    <WebView android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/webView"></WebView>
</LinearLayout>

还有主要的Activity

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.LinearLayout;

public class FlashejemploActivity extends Activity {

WebView wv;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
      setContentView(R.layout.main);
      getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);

    final LinearLayout buttons = (LinearLayout) findViewById(R.id.linearLayout1);
    final LinearLayout webV = (LinearLayout) findViewById(R.id.linearLayout2);
    final Button   web1 = (Button) findViewById(R.id.buttonWeb1);
    final Button   web2 = (Button) findViewById(R.id.buttonWeb2);
    final Button   web3 = (Button) findViewById(R.id.buttonWeb3);
    final Button   back = (Button) findViewById(R.id.buttonBack);

      wv = (WebView) findViewById(R.id.webView );
      wv.getSettings().setJavaScriptEnabled(true);
      wv.getSettings().setPluginsEnabled(true);
      wv.setWebViewClient(new WebViewClient());
      wv.setInitialScale(1);
      wv.getSettings().setBuiltInZoomControls(true);
      wv.getSettings().setUseWideViewPort(true);


      final Activity PActivity = this;
      wv.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress)   
        {

        PActivity.setTitle("Cargando....");
        PActivity.setProgress(progress * 100); 

        if(progress == 100)
               PActivity.setTitle(R.string.app_name);
          }
        });

    webV.setVisibility(View.GONE);

     web1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                buttons.setVisibility(View.GONE);
                webV.setVisibility(View.VISIBLE);
                wv.loadUrl("http://los40.com.mx/Player.htm");
            }});
     web2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                buttons.setVisibility(View.GONE);
                webV.setVisibility(View.VISIBLE);
                wv.loadUrl("http://www.beat1009.com.mx/n2/paginas/radio.php");
            }});
     web3.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                buttons.setVisibility(View.GONE);
                webV.setVisibility(View.VISIBLE);
                wv.loadUrl("http://besame.com.mx/Player.htm");
            }});
     back.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                buttons.setVisibility(View.VISIBLE);
                webV.setVisibility(View.GONE);

            }});

}

}

【问题讨论】:

  • 请贴出与此问题相关的代码
  • @Kevin,抱歉耽搁了,但我只是用我正在使用的代码更新问题。如果你尝试一下,你就会明白我的意思。谢谢
  • @zvzej 你有没有找到解决办法。我也有同样的问题。
  • 不,我还没有找到解决此问题的方法。
  • 你试过打电话给view.bringToFront(); parent.requestLayout(); parent.invalidate();吗?此外,您可能需要将父布局更改为 RelativeLayout

标签: java android flash webview


【解决方案1】:

我知道这已经有一段时间了,但我刚刚通过让 webview 清空解决了一个类似的问题

wv.loadUrl("about:blank");

【讨论】:

    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2011-09-07
    相关资源
    最近更新 更多