2014-10-09 4 views
1

Я пытаюсь сделать нижний колонтитул для моего фрагмента. Я преуспел в этом, но все еще имею проблему, когда я загружаю этот фрагмент в первый раз, когда он работает хорошо, но когда я изменяю фрагменты в своем навигационном ящике и пытаюсь получить этот фрагмент во второй раз при сбое приложения и ошибке журнала покажите мне ошибку:Как исправить раздувание фрагмента внутри onther

android.view.InflateException: Binary XML file line #17: 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) 
Caused by: java.lang.IllegalArgumentException: Binary XML file line #17: 
Duplicate id 0x7f070084, tag null, or parent id 0x7f070082 with another fragment for com.example.user.unchained.FooterHome 

Таким образом, любой один есть идея, чтобы решить проблему

The OnCreateView Функция:

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

     v = inflater.inflate(R.layout.fragment_homes, container, false); 

     listView = (ListView) v.findViewById(R.id.homeList); 

     l = new HomeListAdapter(this, homeList); 
     listView.setAdapter(l); 

     return v; 

    } 

основной L ayout XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/dark_grey" 
android:id="@+id/fHome" 
tools:context="com.example.user.unchained.HomesActivity$PlaceholderFragment"> 

<ListView 
    android:id="@+id/homeList" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:dividerHeight="1dp" 
    android:choiceMode="singleChoice" 
    android:listSelector="@drawable/list_row_selector" /> 

<fragment 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:name="com.example.user.unchained.FooterHome" 
    android:layout_alignParentBottom="true" 
    android:id="@+id/foo" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    tools:layout="@layout/footer_home" /> 


</RelativeLayout> 

Footer Layout XML.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#272822" 
android:id="@+id/homeFooter" 
tools:context="com.example.user.unchained.FooterHome"> 


<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textAppearance="?android:attr/textAppearanceLarge" 
android:text="What's New ?" 
android:textSize="16dip" 
android:layout_marginTop="12dip" 
android:layout_marginLeft="10dip" 
android:drawableLeft="@drawable/status" 
android:id="@+id/watsN" 
android:textColor="@color/connexion_button" 
android:layout_gravity="left|top" /> 


<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text=" | " 
    android:textSize="25dip" 
    android:layout_marginTop="6dip" 
    android:layout_marginLeft="145dip" 
    android:textColor="@color/connexion_button" 
    android:layout_gravity="left|top" /> 


<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="Check In" 
    android:textSize="16dip" 
    android:layout_marginTop="12dip" 
    android:layout_marginLeft="165dip" 
    android:drawableLeft="@drawable/checkin" 
    android:id="@+id/checkIn" 
    android:textColor="@color/connexion_button" 
    android:layout_gravity="left|top" /> 


<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text=" | " 
    android:textSize="25dip" 
    android:layout_marginTop="6dip" 
    android:layout_marginLeft="265dip" 
    android:textColor="@color/connexion_button" 
    android:layout_gravity="left|top" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text=" Picture" 
    android:textSize="16dip" 
    android:layout_marginTop="12dip" 
    android:layout_marginLeft="290dip" 
    android:drawableLeft="@drawable/camera" 
    android:id="@+id/postPic" 
    android:textColor="@color/connexion_button" 
    android:layout_gravity="left|top" /> 

</FrameLayout> 
+0

Начните с изменения «нового HomeListAdapter (this, homeList)». Если он получает контекст как 1-й параметр, вы должны передавать getActivity() вместо этого. –

+0

Почему getActiviy? У меня есть список в фрагменте, а не в действии! – Karimx

+0

Каков первый параметр в конструкторе HomeListAdapter? –

ответ

0

Ваше сообщение об ошибке говорит: «Дубликат идентификатор 0x7f070084 ...» Это заставляет меня думать, что вы не можете добавить один и тот же фрагмент дважды, если корень вашего фрагмента имеет идентификатор.

Это просто предположение, но попробуйте его без атрибутов android:id на корневом элементе.

обновление

Смотрите, если вы можете узнать, какие идентификаторы сообщение об ошибке говорит. Проверьте свой класс R. Он автоматически генерируется из XML-файлов макета, где он генерирует уникальные числа для каждого идентификатора, который вы добавляете с помощью обозначения «@ + id/some_name».

В сообщении об ошибке упоминается проблема с идентификатором 0x7f070084 или id 0x7f070082. Он не упоминает их по имени, которое, вероятно, даст вам лучший намек, где искать проблему.

Но вы можете найти имена в автогенерированном классе R. В Android Studio вы можете найти R-класс по следующему пути: app/build/generated/source/r/debug/com/example/user/unchained/debug. Я не знаю, использует ли Eclipse другой путь, но я уверен, что вы можете понять это.

Откройте файл R.java и найдите номера идентификаторов, указанные в сообщении об ошибке.

+0

В нем говорится «или» тоже. Так может быть, что ошибка не на id –

+0

без какого-либо идентификатора? – Karimx

+0

спасибо за этот четкий ответ! – Karimx

Смежные вопросы