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」));