工具栏标题在片段中显示为空
ToolBar Title showing empty in Fragment
我正在尝试在我的片段中添加 actionbar 工具栏。工具栏正在显示,但标题显示为空。
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;
}
}
toolbar.setTitle("My title");
试试这个
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;
}
这听起来可能很愚蠢,请尝试更改工具栏标题的文本颜色。
toolbar.setTitleTextColor(Color.parseColor("#ffffff"));
最好在 activity 本身中设置工具栏。否则,每次更改片段时,您总是需要分配额外的内存。如果你在 parent activity 中设置工具栏你可以调用:
getActivity().setTitle("title");
在片段中。这样就不会分配额外的内存,也更容易维护。
所以:
Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.profile_toolbar);
((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
将前往 parent activity 并将成为:
Toolbar toolbar = (Toolbar) findViewById(R.id.profile_toolbar);
setSupportActionBar(toolbar);
如果您想在片段或 activity 本身中设置标题:
getActivity().setTitle("title");
我正在尝试在我的片段中添加 actionbar 工具栏。工具栏正在显示,但标题显示为空。
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;
}
}
toolbar.setTitle("My title");
试试这个
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;
}
这听起来可能很愚蠢,请尝试更改工具栏标题的文本颜色。
toolbar.setTitleTextColor(Color.parseColor("#ffffff"));
最好在 activity 本身中设置工具栏。否则,每次更改片段时,您总是需要分配额外的内存。如果你在 parent activity 中设置工具栏你可以调用:
getActivity().setTitle("title");
在片段中。这样就不会分配额外的内存,也更容易维护。
所以:
Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.profile_toolbar);
((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
将前往 parent activity 并将成为:
Toolbar toolbar = (Toolbar) findViewById(R.id.profile_toolbar);
setSupportActionBar(toolbar);
如果您想在片段或 activity 本身中设置标题:
getActivity().setTitle("title");