您好,菜单布局包含菜单项。该菜单项具有一个带有动作视图类的项目,该类应该在单击时附加一个片段。使用菜单项的操作视图类单击action_account菜单项时,如何获得AccountManagementFragment的附件]
我的菜单项布局
<item android:id="@+id/action_account" android:title="Account" android:icon="@drawable/ic_profile" app:showAsAction="collapseActionView|ifRoom" app:actionViewClass="ke.co.clinton.hama.viewslogic.account.AccountManagementFragment"/>
我的onCreateOptionsMenu和onOptionsItemsSelected方法
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { if (item.getItemId() == R.id.search) { } return super.onOptionsItemSelected(item); }
我的片段类
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import ke.co.clinton.hama.MainActivity;
import ke.co.clinton.hama.R;
import ke.co.clinton.hama.interfaces.DrawerLocker;
public class AccountManagementFragment extends Fragment {
private AccountManagementViewModel mViewModel;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
((MainActivity)getActivity()).getSupportActionBar().hide();
((DrawerLocker) getActivity()).setDrawerEnabled(false);
View view = inflater.inflate(R.layout.fragment_account_management, container, false);
Toolbar toolbar = view.findViewById(R.id.toolbar);
toolbar.setTitle("Title");
toolbar.setNavigationIcon(R.drawable.ic_back_button);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().onBackPressed();
}
});
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mViewModel = ViewModelProviders.of(this).get(AccountManagementViewModel.class);
// TODO: Use the ViewModel
}
@Override
public void onResume() {
super.onResume();
((MainActivity)getActivity()).getSupportActionBar().hide();
((DrawerLocker) getActivity()).setDrawerEnabled(true);
}
@Override
public void onStop() {
super.onStop();
((MainActivity)getActivity()).getSupportActionBar().show();
((DrawerLocker) getActivity()).setDrawerEnabled(true);
}
}
您好,菜单布局包含菜单项。该菜单项具有一个带有动作视图类的项目,该类应该在单击时附加一个片段。我如何附上...
您不能在菜单项中将Fragment
作为app:actionViewClass
传递。您真正能做的是在onOptionItemSelected
中选择菜单项时附加片段。
从菜单项中删除app:actionViewClass