Я изо всех сил старался реализовать переключаемую видимость опции Share в меню между фрагментами. Я использую скользящую компоновку вкладок и имеет фрагмент на каждой из двух вкладок. Первая вкладка (использует просмотр списка) и когда элемент выбран, я устанавливаю флаг как истинный и вызывает invalidateOptionsMenu(), и он отлично работает, показывая опцию share в меню панели приложений, но я не могу отменить ее, когда Я перехожу к другому фрагменту, который имеет в основном предпочтения. Код аналогичен приведенному ниже.Параметры настройки общего доступа к настройкам Android на фрагментах, управляемых вкладками в скользящей вкладке.
public void setSharedIntentText(String text) {
sharedText = text;
if (shareOptionVisibility == false) {
shareOptionVisibility = true;
invalidateOptionsMenu();
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
// Locate MenuItem with ShareActionProvider
MenuItem shareItem = menu.findItem(R.id.menu_share);
// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, sharedText);
mShareActionProvider.setShareIntent(sendIntent);
shareItem.setVisible(shareOptionVisibility);
При переключении между вкладками видимость должна быть установлена соответствующим образом. Я попытался установить его onPause метод первого фрагмента, а затем метод onResume второго фрагмента, но управление, похоже, не приводит эти методы, когда я смотрю на logcat. Код, который я использовал для определения видимости на false, приведен ниже в фрагменте2.
public void onResume() {
super.onResume();
Log.i(TAG, "On Resume ");
((MainActivity) getActivity()).shareOptionVisibility = false;
((MainActivity) getActivity()).invalidateOptionsMenu();
}
Так хотелось бы знать, где лучшее место, чтобы поместить код для управления видимостью при переходе между вкладками. Вот список классов, которые я использую. MainActivity, фрагмент1, фрагмент2, SlidingTabLayout, SlidingTabStrip и ViewPagerAdaptor. Этот код был реализован поверх примера com.example.android.actionbarcompat.shareactionprovider.
Заранее спасибо