首页 > 解决方案 > 如何在已包含菜单项的活动上方隐藏并显示的片段中添加菜单项

问题描述

我想在片段中显示共享和设置图标,该图标从右到左显示动画幻灯片。先前的状态是其中包含某些菜单项的提要的主要活动。我已经隐藏了片段,当用户点击主活动中的菜单项时,动画就会出现。之后,我想将新菜单添加到我坚持使用它的片段中。这是我尝试过的:

帐户碎片

package com.practice.projectbm;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

/**
 * A simple {@link Fragment} subclass.
 * Use the {@link AccountFragment#newInstance} factory method to
 * create an instance of this fragment.
 */
public class AccountFragment extends Fragment
{





    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";


    private String mParam1;
    private String mParam2;
    private Toolbar toolbar_profile;



    public static AccountFragment newInstance(String param1, String param2) {
        AccountFragment fragment = new AccountFragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;

    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
        if (getArguments() != null)
        {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }

    }

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

        return inflater.inflate(R.layout.fragment_feed, container, false);



    }

    @Override
    public void onCreateOptionsMenu(@NonNull  Menu menu, @NonNull MenuInflater inflater)
    {
        inflater.inflate(R.menu.profile_menu, menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

@Override
public boolean onOptionsItemSelected(@NonNull  MenuItem item)
{

    switch (item.getItemId())
    {
        case R.id.settings:
            Toast.makeText(getActivity(), "sdkfg", Toast.LENGTH_SHORT).show();
            break;
        case R.id.share:
            Toast.makeText(getActivity(), "sdkfg", Toast.LENGTH_SHORT).show();
            break;

    }

    return super.onOptionsItemSelected(item);
}

}

饲料片段

    package com.practice.projectbm;

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class Feed_Fragment extends Fragment {


    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";


    private String mParam1;
    private String mParam2;

    public Feed_Fragment() {

    }

    public static Feed_Fragment newInstance(String param1, String param2) {
        Feed_Fragment fragment = new Feed_Fragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

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

        return inflater.inflate(R.layout.fragment_feed, container, false);
    }
}

标签: javaandroidandroid-fragmentsanimationtoolbar

解决方案


推荐阅读