9
votes

Comment mettre floatingactebutton au fragment?

Comment puis-je mettre mon fab code> sur mon fragment? aide s'il vous plaît, je reçois des erreurs telles que.

Android.View.inflateException: Ligne de fichier XML binaire # 13: Erreur de gonflage de fragment de classe p> BlockQuote>

Dans mon acte de fragment. Bien voici mes codes. P>

Eh bien, le problème est dans la getactivité (). SetContentView (r.layout.activity_ownerhome); code> p>

FATAL EXCEPTION: main
Process: com.example.kun.carkila, PID: 9267
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kun.carkila/com.example.kun.carkila.ownerhome}: android.view.InflateException: Binary XML file line #12: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5021)
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:827)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:839)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.kun.carkila.ownerFragment.onCreateView(ownerFragment.java:127)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1036)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1230)
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1332)
at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2288)
at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:356)
at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:839)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.kun.carkila.ownerhome.onCreate(ownerhome.java:12)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
at android.app.ActivityThread.access$800(ActivityThread.java:135) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5021) 
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:827) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IllegalArgumentException: Binary XML file line #12: Duplicate id 0x7f0e00aa, tag null, or parent id 0xffffffff with another fragment for com.example.kun.carkila.ownerFragment
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


4 commentaires

Pourriez-vous poster votre trace de pile entière?


@GlennPorter - Publier Mise à jour Monsieur. Merci: D


essayez de changer la getactivité (). SetContentView (r.layout.activity_ownerhome); de votre site ONCreateView de votre classe de fragment et gonflez gonfler le fichier XML de mise en page approprié


Maintenant, vous utilisez Activity_ownerHome pour l'activité et le fragment


4 Réponses :


0
votes

Le problème n'est pas avec le fab, c'est avec la façon dont vous gonflez votre vue.
Remplacez ce code dans le fragment: xxx

avec ceci: xxx

et retirez ceci: xxx

Vous devez définir comment vous voulez que votre fragment XML aspectez, puis gonflez-le à l'aide du code Inflatra.inflate ... et mettez votre fragment XML, comme je l'ai écrit ci-dessus.

Mise à jour:

Au lieu de place dans ceci: xxx

puis dans votre activité principale Ecrire ce code: < / p> xxx

et vous êtes censé voir votre fragment, si dans le fragment, vous gonflez votre fragment XML correctement, comme indiqué ci-dessus.


1 commentaires

Il n'y a rien sur mon activité monsieur quand j'ai enlevé le XML.



7
votes

Vous avez ajouté le bouton d'action flottant dans votre activité_ownerhome.xml et vous l'initialisez à OwnerHomeFragment.java.

Ajoutez votre floatingactbutton dans fragmentownerhome.xml elle-même comme ceci P>

<RelativeLayout 
  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"
  app:layout_behavior="@string/appbar_scrolling_view_behavior"
  tools:context="com.example.kun.carkila.ownerhome"
  tools:showIn="@layout/activity_ownerhome">

  <ListView
    android:layout_width="match_parent"
    android:layout_height="450sp"
    android:id="@+id/lvOnwer"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentBottom="true" />

  <TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="24dp"
    android:textSize="30sp"
    android:textColor="@color/colorPrimaryDark"
    android:id="@+id/tvUser" />

  <android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@drawable/plus" />
</RelativeLayout>


5 commentaires

Je ne pense pas que c'est le problème. Le problème est avec la façon dont il gonfle le fragment. Voir ma réponse ci-dessus.


En fait, cela fonctionne. Mais le Fab est en haut à gauche. Pas sur le fond.


Ça va maintenant. Merci Monsieur!


Utilisez ceci dans votre floatingyrbutton


Android: Layout_alignparentTom = "vrai" Android: Layout_Centerinparent = "vrai"



2
votes

La cause de l'accident est que votre code FAB XML est dans la "mise en page d'activité", il est censé être dans le fichier "Disposition de fragments"

Voici comment j'utilise Fab dans un fragment

dans mon fragment Fichier de mise en page: xxx

dans mon fichier de classe de fragment: xxx p> Et cela fonctionne ...

Note: Quand j'ai inclus android: fond de fond = "@ Android: couleur / transparent" L'application s'est écrasé et a donné l'erreur: xxx

espère que cela aide.


0 commentaires

0
votes

Vous devez implémenter le fragment dans votre classe principale quelque chose comme ...

public class ownerhome extends AppCompatActivity implement ownerhomeFragment {...


0 commentaires