0

我想在我的片段中添加操作栏工具栏。工具栏正在显示,但标题显示为空。

enter image description here

XML代码:工具栏标题显示空片段

<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(“Your Title”);' –

+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”));