0

J'essaie d'ajouter la barre d'outils barre d'outils dans mon fragment. La barre d'outils s'affiche mais le titre est vide.

enter image description here

code XML:ToolBar Titre montrant vide dans le fragment

<android.support.v7.widget.Toolbar 
       android:id="@+id/profile_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?android:attr/actionBarSize" 
       android:minHeight="?android:attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed" 
       app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

Voici mon FragmentActivity:

public class ProfileFragment extends android.support.v4.app.Fragment { 
    Toolbar toolbar; 

    @Override 
    public void onAttach(Context context) { 
     super.onAttach(context); 
    } 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.activity_profile, container, false); 
     toolbar = (Toolbar) getActivity().findViewById(R.id.profile_toolbar); 
     ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar); 
     ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("Tamil"); 
     return view; 
    } 

} 
+0

Avez-vous défini le titre de la barre d'action de support? Je ne peux pas voir '((AppCompatActivity) getActivity()). GetSupportActionBar(). SetTitle (" Votre titre ");' –

+0

ya je l'ai essayé aussi. laissez-moi le mettre à jour dans mon code ci-dessus –

+1

vous récupérez la barre d'outils de l'activité, pas de votre vue –

Répondre

1

Il est préférable de définir votre barre d'outils dans l'activité elle-même. Sinon, vous devrez toujours allouer de la mémoire supplémentaire chaque fois que vous modifiez le fragment. Si vous définissez la barre d'outils dans l'activité parente, vous pouvez simplement appeler:

getActivity().setTitle("title"); 

dans le fragment. Si vous le faites de cette façon, aucune mémoire supplémentaire ne sera allouée, et il est plus facile à maintenir.

Alors:

Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.profile_toolbar); 
((AppCompatActivity) getActivity()).setSupportActionBar(toolbar); 

wil aller à l'activité mère et deviendra:

Toolbar toolbar = (Toolbar) findViewById(R.id.profile_toolbar); 
setSupportActionBar(toolbar); 

si vous souhaitez définir le titre dans un fragment ou dans l'activité elle-même:

getActivity().setTitle("title"); 
0
toolbar.setTitle("My title"); 

essayer cette

0

TypeCaste à votre activityName au lieu de AppCompatActivity comme celui-ci

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.activity_profile, container, false); 
    toolbar = (Toolbar) getActivity().findViewById(R.id.profile_toolbar); 
    ((YourFragmentActivity) getActivity()).setSupportActionBar(toolbar); 
    ((YourFragmentActivity) getActivity()).getSupportActionBar().setTitle("Tamil"); 
    return view; 
} 
0

Aussi stupide que cela puisse paraître, essayez de changer la couleur du texte du titre de votre barre d'outils.

toolbar.setTitleTextColor (Color.parseColor ("# ffffff"));