我正在尝试在片段中添加操作栏工具栏。工具栏正在显示,但标题显示为空。
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 :(得分: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");
答案 1 :(得分:0)
{{1}}
试试这个
答案 2 :(得分:0)
键入您的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;
}
答案 3 :(得分:0)
听起来很傻,尝试更改工具栏标题的文字颜色。
toolbar.setTitleTextColor(Color.parseColor(&#34;#FFFFFF&#34));