WebView во фрагмент (android.support.v4) - PullRequest
4 голосов
/ 14 февраля 2012

Я получил меню вкладки, используя ViewPager. Каждая вкладка содержит фрагменты из пакета android.support.v4 (совместимость со старыми SDK). Один из фрагментов - WebView (называемый FragmentWeb), и я хочу, чтобы он оставался в макете пейджера. Проблема в том, что когда мой WebView накачан, он работает в полноэкранном режиме.

Есть ли способ сохранить веб-браузер под моими вкладками?

Спасибо

Класс моего фрагмента: FragmentWeb.java

public class FragmentWeb extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View mainView = (View) inflater.inflate(R.layout.fragment_web, container, false);
    WebView webView = (WebView) mainView.findViewById(R.id.webview);
    webView.loadUrl("http://www.google.com");
    return mainView;
}
}

Макет моего фрагмента: фрагмент_web.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

Ответы [ 2 ]

8 голосов
/ 14 июня 2013

Вы можете просто адаптировать текущую реализацию WebViewFragment к вашим потребностям, заменив:

import android.app.Fragment;

на

import android.support.v4.app.Fragment;

в вашей собственной копии WebViewFragment.java источник.

6 голосов
/ 06 марта 2012

Это можно сделать, добавив следующий код в onCreateView в коде фрагмента и вставив вызов WebViewClient:

                webview.setWebViewClient(new MyWebViewClient());
            webview.getSettings().setPluginsEnabled(true);
            webview.getSettings().setBuiltInZoomControls(false); 
            webview.getSettings().setSupportZoom(false);
            webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);   
            webview.getSettings().setAllowFileAccess(true); 
            webview.getSettings().setDomStorageEnabled(true);
            webview.loadUrl(mTabURL);       
        }
        return v;
    }


    public class MyWebViewClient extends WebViewClient {        
        /* (non-Java doc)
         * @see android.webkit.WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView, java.lang.String)
         */


        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.endsWith(".mp4")) 
            {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.parse(url), "video/*");

                view.getContext().startActivity(intent);
                return true;
            } 
            else {
                return super.shouldOverrideUrlLoading(view, url);
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...