2017-01-21 12 views
0

この問題に関するすべてをサイトで読んだことがありますが、解決策はありませんでした。私は初心者ではなく、4タブのアクティビティを作成しようとしています。最初のタブにはwebViewがありますが、URLはロードされません。何が欠けている?WebView in FragmentはURLをロードしません

のAndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/Theme.AppCompat.NoActionBar"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <!-- [START firebase_service] --> 
    <service android:name=".MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
     </intent-filter> 
    </service> 
    <!-- [END firebase_service] --> 
    <!-- [START firebase_iid_service] --> 
    <service android:name=".MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
     </intent-filter> 
    </service> 
    <!-- [END firebase_iid_service] --> 
    <activity 
     android:name=".AnaSayfa" 
     android:label="@string/title_activity_ana_sayfa" 
     android:theme="@style/Theme.AppCompat.NoActionBar"></activity> 
</application> 

fragment_frag_home.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="layout.fragHome"> 

<!-- TODO: Update blank fragment layout --> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/pembis" 
    android:orientation="vertical"> 

    <WebView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_centerVertical="true" 
     android:id="@+id/webView" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 
</RelativeLayout> 

fragHome.java

package layout; 
import android.app.ProgressDialog; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 


import com.sahin.spm.R; 

/** 
* A simple {@link Fragment} subclass. 
* Activities that contain this fragment must implement the 
* {@link fragHome.OnFragmentInteractionListener} interface 
* to handle interaction events. 
* Use the {@link fragHome#newInstance} factory method to 
* create an instance of this fragment. 
*/ 
public class fragHome extends Fragment { 
    private WebView myWebView; 
    private String Url = "http://google.com.tr"; 
    // TODO: Rename parameter arguments, choose names that match 
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER 
    private static final String ARG_PARAM1 = "param1"; 
    private static final String ARG_PARAM2 = "param2"; 


    // TODO: Rename and change types of parameters 
    private String mParam1; 
    private String mParam2; 
    private OnFragmentInteractionListener mListener; 

    public fragHome() { 
     // Required empty public constructor 
    } 

    /** 
    * Use this factory method to create a new instance of 
    * this fragment using the provided parameters. 
    * 
    * @param param1 Parameter 1. 
    * @param param2 Parameter 2. 
    * @return A new instance of fragment fragHome. 
    */ 
    // TODO: Rename and change types and number of parameters 
    public static fragHome newInstance(String param1, String param2) { 
     fragHome fragment = new fragHome(); 
     Bundle args = new Bundle(); 
     args.putString(ARG_PARAM1, param1); 
     args.putString(ARG_PARAM2, param2); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (getArguments() != null) { 
      mParam1 = getArguments().getString(ARG_PARAM1); 
      mParam2 = getArguments().getString(ARG_PARAM2); 
     } 

    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_frag_home, container, false); 
     WebView webView = (WebView) rootView.findViewById(R.id.webView); 
     webView.setWebViewClient(new WebViewClient()); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.loadUrl("http://www.google.com.tr"); 
     return rootView; 
    } 


    // TODO: Rename method, update argument and hook method into UI event 
    public void onButtonPressed(Uri uri) { 
     if (mListener != null) { 
      mListener.onFragmentInteraction(uri); 
     } 
    } 

    @Override 
    public void onAttach(Context context) { 
     super.onAttach(context); 
     if (context instanceof OnFragmentInteractionListener) { 
      mListener = (OnFragmentInteractionListener) context; 
     } else { 
      throw new RuntimeException(context.toString() 
        + " must implement OnFragmentInteractionListener"); 
     } 
    } 

    @Override 
    public void onDetach() { 
     super.onDetach(); 
     mListener = null; 
    } 

    /** 
    * This interface must be implemented by activities that contain this 
    * fragment to allow an interaction in this fragment to be communicated 
    * to the activity and potentially other fragments contained in that 
    * activity. 
    * <p> 
    * See the Android Training lesson <a href= 
    * "http://developer.android.com/training/basics/fragments/communicating.html" 
    * >Communicating with Other Fragments</a> for more information. 
    */ 
    public interface OnFragmentInteractionListener { 
     // TODO: Update argument type and name 
     void onFragmentInteraction(Uri uri); 
    } 
} 

ご協力いただきありがとうございます。

編集:私の意見で 問題は、この行である:

View rootView = inflater.inflate(R.layout.fragment_anasayfa, container, false); 
WebView myWebView = (WebView) rootView.findViewById(R.id.hWebView); 

私は、既存のWebViewで定義されたオブジェクトに関連して問題があると思います。

+1

ようこそ!最初に[ツアー(http://stackoverflow.com/tour)に参加して[良い質問をする方法](http://stackoverflow.com/help/how-to-ask)を学んで[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例を参照してください。そうすれば、私たちがあなたを助けやすくなります。 –

+0

アクティビティを開いたときにはどうなりますか? –

+0

空白のwebviewがタブに表示されます。 –

答えて

0

は、このようなsetUserVisibleHintをオーバーライドしてみてください:スタックオーバーフローへ

@Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if (isVisibleToUser){ 
     webView.loadUrl("http://www.google.com.tr"); 
    } 
+0

まだ読み込まれず、白いページが表示されます。 –

関連する問題