0

Я пытаюсь добавить панель инструментов панели действий в свой фрагмент. Панель инструментов отображается, но заголовок показывает пустой.

enter image description here

XML-код:Заголовок ToolBar, отображающий пустой фрагмент

<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" /> 

Вот мой 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

Установили ли вы название панели действий поддержки? Я не вижу никаких ((AppCompatActivity) getActivity()). GetSupportActionBar(). SetTitle («Ваше название»); ' –

+0

Я тоже попробовал. позвольте мне обновить его в моем коде выше –

+1

, вы возвращаете панель инструментов из действия, а не из своего вида –

ответ

1

Лучше всего настроить панель инструментов в самой деятельности. В противном случае вам всегда нужно выделять дополнительную память при каждом изменении фрагмента. Если вы установите панель инструментов в родительской деятельности, вы можете позвонить:

getActivity().setTitle("title"); 

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

Итак:

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

Виль перейти к родительскому деятельности и станут:

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

, если вы хотите, чтобы установить заголовок в виде фрагмента или в самой деятельности:

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

попробовать этот

0

TypeCaste вашему ActivityName вместо AppCompatActivity как этот

@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

Как можно глупо, попробуйте изменить цвет текста названия вашей панели инструментов.

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

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