首页 > 解决方案 > 从片段设置活动工具栏行为

问题描述

我有一个打开Activity' hosting a片段的应用程序。`

显示Fragment一个RecyclerView,用户可以点击其中的一个项目RecyclerView被带到一个新的Fragment,由相同的托管Activity

Toolbarxml 项位于 th中,而Activity不是每个个体Fragment。当用户导航到第二个Fragment时,我希望他们能够单击后退按钮导航回上一个Fragment

Fragment以下是从to导航的代码Fragment

holder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    String pollID = mFireAdapter.getRef(holder.getAdapterPosition()).getKey();
                    Fragment pollFragment = PollFragment.newInstance(pollID);
                    FragmentTransaction ft = getFragmentManager().beginTransaction();
                    ft.setCustomAnimations(R.anim.fadein, R.anim.fadeout);
                    ft.add(R.id.poll_feed_fragment, pollFragment);
                    ft.addToBackStack(null);
                    ft.commit();

在接下来Fragment,我想显示后退按钮,并试图通过访问该.setDisplayHomeUpAsEnabled()方法无济于事:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    final View v = inflater.inflate(R.layout.fragment_poll, container, false);
    ButterKnife.bind(v);

    Toolbar toolbar = getActivity().findViewById(R.id.action_tool_bar);

标签: javaandroidandroid-fragments

解决方案


在您的片段中,您可以使用方法 getActivity。

((Your_activity_class_name)getActivity()).getSupportActionBar()

然后创建将返回您的工具栏的自定义方法。或者,如果您通过方法setSupportActionBar设置工具栏(如支持操作栏),只需使用getSupportActionBar

您不需要每次都找到您的工具栏,因为您已经这样做了。


推荐阅读