0

The structure of my application:

ViewPager which contains three pages:

  • Fragment which inflates RecyclerView layout (Worked without problem)
  • General page which inflates XML (No Fragments etc., just XML. Worked without problem)
  • Third page which contains Fragment. Fragment inflates XML. After I added this page all problems occurred. I'm not sure, whether it is possible to use several fragments inside ViewPager or there required some kind of adapter. But conflict happens when I use this page.

I browsed many answers connected to this error, but majority of them were related to Google Maps API which I don't use.

My error:

05-16 17:42:30.579 16166-16166/psa.XXXXXX.com.psa E/AndroidRuntime: FATAL EXCEPTION: main
Process: psa.XXXXXX.com.psa, PID: 16166
android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at psa.XXXXXX.com.psa.CustomPagerAdapter.instantiateItem(CustomPagerAdapter.java:24)
    at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:943)
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1125)
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1025)
    at android.support.v4.view.ViewPager$3.run(ViewPager.java:254)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
    at android.view.Choreographer.doCallbacks(Choreographer.java:670)
    at android.view.Choreographer.doFrame(Choreographer.java:603)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at psa.XXXXXX.com.psa.CustomPagerAdapter.instantiateItem(CustomPagerAdapter.java:24) 
    at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:943) 
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1125) 
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1025) 
    at android.support.v4.view.ViewPager$3.run(ViewPager.java:254) 
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
    at android.view.Choreographer.doFrame(Choreographer.java:603) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: java.lang.IllegalArgumentException: Binary XML file line #7: Duplicate id 0x7f0c008c, tag null, or parent id 0xffffffff with another fragment for psa.XXXXXX.com.psa.FragmentViewIntro
    at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2293)
    at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
    at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:357)
    at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:80)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at psa.XXXXXX.com.psa.CustomPagerAdapter.instantiateItem(CustomPagerAdapter.java:24) 
    at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:943) 
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1125) 
    at android.support.v4.view.ViewPager.populate(ViewPager.java:1025) 
    at android.support.v4.view.ViewPager$3.run(ViewPager.java:254) 
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
    at android.view.Choreographer.doFrame(Choreographer.java:603) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 

Here is my Fragment class:

    public class FragmentViewIntro extends Fragment {

    View mResult;

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,
                             Bundle savedInstanceState) {
        mResult = inflater.inflate(view_intro_fragment, container, false);
        EditText savingEdit = (EditText) mResult.findViewById(R.id.saving_input);
        savingEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                RelativeLayout footer = (RelativeLayout) getActivity().findViewById(R.id.footer_layout);
                if (hasFocus = true) {
                    //  footer.setVisibility(View.GONE);
                }

            }
        });

        return (mResult);
    }
}

Here is my Fragment XML(is not inflated, I don't have nested Fragment):

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:background="@color/colorPrimaryGrey"
    android:layout_height="match_parent">
    <fragment android:name="psa.XXXXXX.com.psa.FragmentViewIntro"
        android:id="@+id/intro_view_fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

Here is my inflated XML for Fragment:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimaryGrey"
    android:orientation="vertical"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_margin="5dp"
            android:background="@drawable/oval_border"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/footer_shape"
                android:orientation="vertical">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"

                    android:padding="5dp"
                    android:text="@string/what_is"
                    android:textColor="#000000"
                    android:textSize="20sp"
                    android:layout_margin="8dp"
                    />


                <EditText
                    android:id="@+id/saving_input"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_margin="10dp"
                    android:inputType="number"
                    android:layout_weight="1"
                    />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="end"
                    >

                    <Button
                        android:id="@+id/saving_button"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="end"
                        android:background="@drawable/round_button_shape"
                        android:gravity="center"
                        android:text="@string/button_save_text"
                        android:layout_margin="8dp"

                        />
                </LinearLayout>

            </LinearLayout>


        </LinearLayout>


    </LinearLayout>

</LinearLayout>
NickitaX
  • 352
  • 2
  • 14

0 Answers0