Установить поведение панели инструментов действия из фрагмента - PullRequest
0 голосов
/ 25 октября 2018

У меня есть приложение, которое открывается для фрагмента Activity' hosting a.

Fragment отображает RecyclerView, и пользователи могут щелкнуть элемент в пределах RecyclerView, чтобы перейти кновый Fragment, размещенный на том же Activity.

Элемент Toolbar xml находится в пределах Activity, а не каждого отдельного Fragment.Когда пользователь переходит ко второму Fragment, я хочу, чтобы он мог нажимать кнопку «Назад», чтобы вернуться к предыдущему Fragment.

Ниже приведен код перехода от Fragment к * 1019.*:

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

1 Ответ

0 голосов
/ 25 октября 2018

Внутри вашего фрагмента вы можете использовать метод getActivity.

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

Затем создайте пользовательский метод, который будет возвращать вашу панель инструментов.Или, если вы устанавливаете панель инструментов как панель действий поддержки с помощью метода setSupportActionBar , просто используйте getSupportActionBar

Вам не нужно каждый раз находить панель инструментов, потому что вы уже это сделали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...