ToolBar标题在Fragment中显示为空

时间:2017-01-03 10:50:40

标签: android android-fragments android-actionbar android-toolbar android-fragmentactivity

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

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;
    }

}

4 个答案:

答案 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));