Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another / 17 сообщений из 17, страница 1 из 1
23.12.2014, 08:41
    #38840188
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
у меня три вкладки, я могу вернуться со второй кладки на первую но когда я возвращаюсь с третьей на вторую то уже не могу вернуться на первую и программа отваливается в логах пишет

в первой вкладке два фрагмента

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<fragment

    android:name="com.example.eldos.callreport.Fragment1"
    android:id="@+id/frag1"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    tools:layout="@layout/fragment1"/>

<fragment
    android:name="com.example.eldos.callreport.Fragment2"
    android:id="@+id/frag2"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    tools:layout="@layout/fragment2"/>


код где создаются вкладки

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
public class ScreenOne extends Fragment {

    private SlidingTabLayout mSlidingTabLayout;

    private ViewPager mViewPager;

    public ScreenOne() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.screen_first, container, false);
        Log.i("log", "onCreateView");

        return rootView;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        // Get the ViewPager and set it's PagerAdapter so that it can display items
        mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
        mViewPager.setAdapter(new SamplePagerAdapter());

        // Give the SlidingTabLayout the ViewPager, this must be
        // done AFTER the ViewPager has had it's PagerAdapter set.
        mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
        mSlidingTabLayout.setViewPager(mViewPager);

    }

    // Adapter
    class SamplePagerAdapter extends PagerAdapter {

        /**
         * Return the number of pages to display
         */
        @Override
        public int getCount() {
            return 4;
        }

        /**
         * Return true if the value returned from is the same object as the View
         * added to the ViewPager.
         */
        @Override
        public boolean isViewFromObject(View view, Object o) {
            return o == view;
        }

        /**
         * Return the title of the item at position. This is important as what
         * this method returns is what is displayed in the SlidingTabLayout.
         */
        @Override
        public CharSequence getPageTitle(int position) {
            return "Screen " + (position + 1);
        }

        /**
         * Instantiate the View which should be displayed at position. Here we
         * inflate a layout from the apps resources and then change the text
         * view to signify the position.
         */
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            // Inflate a new layout from our resources
            View view = null;
            if(position == 0){
                 view = getActivity().getLayoutInflater().inflate(R.layout.activity_main,container, false);
                container.addView(view);
//                TextView title = (TextView) view.findViewById(R.id.item_title);
//                title.setText("It's first page");
            }
            // Add the newly created View to the ViewPager

            // Retrieve a TextView from the inflated View, and update it's text
            if(position == 1) {
                 view = getActivity().getLayoutInflater().inflate(R.layout.pager_item, container, false);
                container.addView(view);
                TextView title = (TextView) view.findViewById(R.id.item_title);
                title.setText("It's first page");
            }
            if(position == 2) {
                 view = getActivity().getLayoutInflater().inflate(R.layout.pager_item, container, false);
                container.addView(view);
                TextView title = (TextView) view.findViewById(R.id.item_title);
                title.setText("It's first page");
            }
            else {
                view = getActivity().getLayoutInflater().inflate(R.layout.pager_item, container, false);
                container.addView(view);
                TextView title = (TextView) view.findViewById(R.id.item_title);
                title.setText("It's first page");
            }
            // Return the View
            return view;
        }

        /**
         * Destroy the item from the ViewPager. In our case this is simply
         * removing the View.
         */
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }
    }
}



выводит ошибку когда я перелистываю с третьей на вторую и даже если я просто задеваю эту вторую вкладку,

12-22 08:50:42.060 1558-1558/com.example.eldos.callreport E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.eldos.callreport, PID: 1558 android.view.InflateException: Binary XML file line #18: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.example.eldos.callreport.fragments.ScreenOne$SamplePagerAdapter.instantiateItem(ScreenOne.java:92) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:837) at android.support.v4.view.ViewPager.populate(ViewPager.java:1021) at android.support.v4.view.ViewPager.populate(ViewPager.java:919) at android.support.v4.view.ViewPager$3.run(ViewPager.java:249) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) at android.view.Choreographer.doCallbacks(Choreographer.java:574) at android.view.Choreographer.doFrame(Choreographer.java:543) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalArgumentException: Binary XML file line #18: Duplicate id 0x7f090040, tag null, or parent id 0x0 with another fragment for com.example.eldos.callreport.Fragment1 at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2164) at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:297) at android.support.v7.app.ActionBarActivity.onCreateView(ActionBarActivity.java:547) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.example.eldos.callreport.fragments.ScreenOne$SamplePagerAdapter.instantiateItem(ScreenOne.java:92) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:837) at android.support.v4.view.ViewPager.populate(ViewPager.java:1021) at android.support.v4.view.ViewPager.populate(ViewPager.java:919) at android.support.v4.view.ViewPager$3.run(ViewPager.java:249) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) at android.view.Choreographer.doCallbacks(Choreographer.java:574) at android.view.Choreographer.doFrame(Choreographer.java:543) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method)


проблема в том что не восстанавливается или корректно не удаляется фрагменты

Модератор: Просьба пользоваться спойлером.
...
Рейтинг: 0 / 0
23.12.2014, 09:14
    #38840200
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
ЕлдосBinary XML file line #18
Что в этой строчке находится?

И да, говоришь три страницы?
Елдос
Код: java
1.
2.
3.
4.
@Override
        public int getCount() {
            return 4;
        }
...
Рейтинг: 0 / 0
23.12.2014, 10:20
    #38840248
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
wadmanЕлдосBinary XML file line #18
Что в этой строчке находится?

И да, говоришь три страницы?
Елдос
Код: java
1.
2.
3.
4.
@Override
        public int getCount() {
            return 4;
        }


да сейчас три, это я проверял,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
   @Override
        public Object instantiateItem(ViewGroup container, int position) {
            // Inflate a new layout from our resources
            View view = null;
            if(position == 0){
                 view = getActivity().getLayoutInflater().inflate(R.layout.activity_main,container, false);
                container.addView(view);
//                TextView title = (TextView) view.findViewById(R.id.item_title);
//                title.setText("It's first page");
            }
            // Add the newly created View to the ViewPager

            // Retrieve a TextView from the inflated View, and update it's text
            if(position == 1) {
                 view = getActivity().getLayoutInflater().inflate(R.layout.pager_item, container, false);
                container.addView(view);
                TextView title = (TextView) view.findViewById(R.id.item_title);
                title.setText("It's first page");
            }
            if(position == 2) {
                 view = getActivity().getLayoutInflater().inflate(R.layout.pager_item, container, false);
                container.addView(view);
                TextView title = (TextView) view.findViewById(R.id.item_title);
                title.setText("It's first 
            return view;
        }


в этой строчке
Код: xml
1.
2.
3.
4.
5.
6.
7.
<fragment

    android:name="com.example.eldos.callreport.Fragment1"
    android:id="@+id/frag1"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    tools:layout="@layout/fragment1"/>



я думаю проблема в том что, вьюшки уничтожаются но фрагменты не уничтожаются и когда он хочет заново создать и так как он уже есть он выводит что он типа уже есть duplicate,
только вот как это устранить.

пробовал во фрагменте писать
@Override public void onDestroyView() {
super.onDestroyView();

}
но ошибка так же выходила
...
Рейтинг: 0 / 0
23.12.2014, 10:45
    #38840288
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
Елдос,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment1, container, false);
    }
/*    public void onDestroy() {
        super.onDestroy();
    }*/

    @Override
public void onDestroyView() {
    super.onDestroyView();
        Log.i("fragment1", "ondestroy");

}
    public void onDetach() {
        super.onDetach();
        Log.i("fragment1", "ondetach");

    }
}


вот еще код фрагмента.
...
Рейтинг: 0 / 0
23.12.2014, 10:59
    #38840305
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
Каша какая-то...

Попробуй объяснить сначала, что именно ты хочешь получить в интерфейсе? Покажи рисунок.
...
Рейтинг: 0 / 0
23.12.2014, 11:29
    #38840359
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
wadmanКаша какая-то...

Попробуй объяснить сначала, что именно ты хочешь получить в интерфейсе? Покажи рисунок.
у меня три вкладки,
view pager уничтожает view или удаляет их из контейнера, когда к примеру я окажусь на третьей вкладке он удаляет из контейнера первую и сохраняет только соседние справа и слева по одному, а другие удаляет.
ну вот так как он удаляет из контейнера эти view а фрагменты как бы не удаляются и вот когда он хочет создать его заново и выводит ошибку, что то типа duplicate,
там вот мне надо бы как то сделать чтобы эти фрагменты тоже удалялись что бы при пересоздании не выводила ошибку.
...
Рейтинг: 0 / 0
23.12.2014, 11:48
    #38840402
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
Елдос, картинка зачетная :)
Елдосчто то типа duplicate
В первом сообщении ни слова о dublicate. Там ошибка чтения. Обычно возникает из-за отсутствия класса, файла и т.п. На какую строку указывает, ты тоже не рассказываешь...
...
Рейтинг: 0 / 0
23.12.2014, 13:15
    #38840493
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
wadmanЕлдос, картинка зачетная :)
Елдосчто то типа duplicate
В первом сообщении ни слова о dublicate. Там ошибка чтения. Обычно возникает из-за отсутствия класса, файла и т.п. На какую строку указывает, ты тоже не рассказываешь...
вот эта строка которую вы и спрашивали про номер 18

Binary XML file line #18: Duplicate id 0x7f090040, tag null, or parent id 0x0 with another fragment for com.example.eldos.callreport.Fragment1 at android.support
...
Рейтинг: 0 / 0
23.12.2014, 13:57
    #38840545
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
...
Рейтинг: 0 / 0
23.12.2014, 17:08
    #38840907
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
wadmanЕлдос, как-то не понимаю тебя... Почитай тут http://stackoverflow.com/questions/14928833/android-app-error-duplicate-id-0x7f04000f-tag-null-or-parent-id-0x0-with-ano
да видел их и много других советов на SOF, везде одна и та же ошибка
...
Рейтинг: 0 / 0
23.12.2014, 17:52
    #38840957
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
что то ты не так делаешь

в getItem получил вьюшку

в instantiateItem
положил вьюшку в контейнер
...
Рейтинг: 0 / 0
23.12.2014, 18:12
    #38840980
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
Джибсчто то ты не так делаешь

в getItem получил вьюшку

в instantiateItem
положил вьюшку в контейнер
getitem без него, вроде бы сейчас работает то есть кое как работает.
ну вот подскажите мне что делать
...
Рейтинг: 0 / 0
24.12.2014, 12:37
    #38841563
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
ну тогда проверяй наличие вьюшки в контейнере.
это самое просто решение

при 3 - вьюшках 1-2-3 , 2 по середине скорее не убьется, так как вьюпагер ее будет держать за ранее что бы при перелистывание не создавать заново.
...
Рейтинг: 0 / 0
24.12.2014, 12:47
    #38841588
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
Джибсну тогда проверяй наличие вьюшки в контейнере.
это самое просто решение

при 3 - вьюшках 1-2-3 , 2 по середине скорее не убьется, так как вьюпагер ее будет держать за ранее что бы при перелистывание не создавать заново.

Как это сделать
...
Рейтинг: 0 / 0
24.12.2014, 13:17
    #38841621
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
ЕлдосДжибсну тогда проверяй наличие вьюшки в контейнере.
это самое просто решение

при 3 - вьюшках 1-2-3 , 2 по середине скорее не убьется, так как вьюпагер ее будет держать за ранее что бы при перелистывание не создавать заново.

Как это сделать

setId
findbyid
...
Рейтинг: 0 / 0
24.12.2014, 17:31
    #38841982
Елдос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
ДжибсЕлдоспропущено...


Как это сделать

setId
findbyid
дело в том что они из контейнера удаляются нормально, но фрагменты не уничтожаются скорее всего.
и вот так как его в контейнере не будет соответственно он будет говорить что такой уже есть и что то типа дублика вновь повторно создаваемый фрагмент
...
Рейтинг: 0 / 0
25.12.2014, 11:11
    #38842493
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another
я не вижу где ты создаешь фрагменты
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Binary XML file line Duplicate id 0x7f090040, tag null, or parent id 0x0 with another / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]