2

WebViewが常に全画面表示になり、タブが覆われるのに問題があります。これがタブホストの私のコードです。

    public class tabNZBMobile extends TabActivity {
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

  Resources res = getResources(); // Resource object to get Drawables
  TabHost tabHost = getTabHost();  // The activity TabHost
  TabHost.TabSpec spec;  // Reusable TabSpec for each tab
  Intent intent;  // Reusable Intent for each tab

  // Create an Intent to launch an Activity for the tab (to be reused)
  intent = new Intent().setClass(this, NewzbinMobile.class);

  // Initialize a TabSpec for each tab and add it to the TabHost
  spec = tabHost.newTabSpec("search").setIndicator("Search",
    res.getDrawable(R.drawable.ic_tab_search))
    .setContent(intent);
  tabHost.addTab(spec);

  // Do the same for the other tabs
  intent = new Intent().setClass(this, sabnzbWeb.class);
  spec = tabHost.newTabSpec("sabnzbweb").setIndicator("SabNZBd",
    res.getDrawable(R.drawable.ic_tab_sabnzbweb))
    .setContent(intent);
  tabHost.addTab(spec);

  tabHost.setCurrentTabByTag("search");
 }}

私の最初のタブ(NewzbinMobile.class)は正しく表示されますが、これは単なる相対レイアウトです。しかし、私の2番目のタブは、Webビューを表示するアクティビティであり、表示されていますが、画面全体を使用して、タブをカバーしています。これが私の2番目のタブのコードです。

    public class sabnzbWeb extends Activity {
 WebView mWebView;
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  String sabNZBurl = new String("http://test.server.org:8080/m");

  mWebView = new WebView(this);
  mWebView.getSettings().setJavaScriptEnabled(true);
  setContentView(mWebView);
  mWebView.loadUrl(sabNZBurl);
 }}
4

2 に答える 2

3

まさにそれです。WebViewClientのshouldOverrideUrlLoadingメソッドをオーバーライドしてリダイレクトを処理することは知っていましたが、テストしていたURLがリダイレクトされていることに気づきませんでした。非常にty。

修正するために、これが私がしたことです。

final class MyWebViewClient extends WebViewClient {
    @Override
    // Show in WebView instead of Browser
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        view.loadUrl(url);
        return true;
    }
}

そして、このようにonCreate()で作成した直後に、MyWebViewClientをWebViewに追加します。

mWebView.setWebViewClient(new MyWebViewClient());
于 2010-04-27T14:10:25.880 に答える
2

私が推測しなければならなかったhttp://test.server.org:8080/m場合、リダイレクトを行います。その場合WebView、「[あなたの]タブをカバーする」のはあなたではなく、ブラウザアプリケーションです。WebViewデフォルトでは、ブラウザアプリケーションを起動して、リダイレクトと通常のクリックを処理します。

于 2010-04-26T23:53:20.010 に答える