我有一个标志/书签按钮在行动栏,我想切换或关闭,取决于哪个片段是在视图页的视图。
如果用户在ViewPager中标记了一个片段,则该片段将被设置为Enabled。当用户滑到下一个,我希望动作栏按钮更新为未标记。现在,我可以通过有两个菜单项来改变按钮的状态,并隐藏一个,单击时显示一个。
public boolean onOptionsItemSelected(MenuItem item) {
int currentItem = mPager.getCurrentItem();
switch (item.getItemId()) {
case R.id.menu_flag:
mFlagged = true;
supportInvalidateOptionsMenu();
return true;
case R.id.menu_unflag:
mFlagged = false;
supportInvalidateOptionsMenu();
return true;
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem item_flag = menu.findItem(R.id.menu_flag);
MenuItem item_unflag = menu.findItem(R.id.menu_unflag);
if (mFlagged) {
//If flagged
//Show flagged item
item_flag.setVisible(false).setEnabled(false);
item_unflag.setVisible(true).setEnabled(true);
item_flag.isVisible();
} else {
//If not flagged
//Show unflagged icon
item_flag.setVisible(true).setEnabled(true);
item_unflag.setVisible(false).setEnabled(false);
}
return super.onPrepareOptionsMenu(menu);
}
我怎么能这么做?我应该在哪个级别访问操作栏;活动、PagerAdapter还是片段?
在您的viewpager
上注册viewpager.onpagechangelistener
应该可以做到这一点。然后,重写onpageselected(int pageNum)
,以便在页更改时接收回调。
public void onPageSelected(int pageNum) {
supportInvalidateOptionsMenu();
}
我试着在发帖前在里面搜索,但我不能理解如何刷新片段中托管的ViewPager的内容。你能帮帮我吗? 谢谢你抽出时间 } 这是pageviewer中的imageview的类
当我从片段B回到片段A时,actionbar标题应该是“fraga”,但它仍然是“fragb”。问题是add方法片段A没有重新创建,我没有找到事件来刷新它。 目前我找到的唯一简单的解决方案是: 1-fragb.onResume:保存上一个操作栏标题
"'公共类HomeFraank扩展了片段{ } ''' 碎片_home已创建但未被识别。
我正在做一个计算器应用程序,想要更新历史在第二个片段,但不能找到一个完美的解决方案更新列表视图在第二个片段。我试过很多种解决办法,但没有一种有效。我正在使用ViewPager在计算器和历史片段之间滑动。我厌倦了bundle类,但如果我在ViewPager的第一个片段(CalculatorFragment)的OnCreat方法中使用bundle,它在启动应用程序后会显示空白屏幕&如果我在Equal按
我已经创建了一个应用程序的布局有三个标签在Android2.3。每个选项卡都有一个片段,在每个片段中,都有一个列表视图。在列表视图中显示的所有数据都来自互联网,数据总是在变化,所以每次我看那个片段的时候都想重新加载数据。例如,我现在正在观看“tab1”,当我单击“tab2”时,“tab2”中的数据将重新加载,而当我单击返回“tab1”时,“tab1”中的数据也将再次重新加载。我试过了 TabSAd
我正在实现Android的标准抽屉菜单模式,用户可以从抽屉导航到大约10个片段。目前,每次点击不同的抽屉菜单项时,我都会创建一个新的片段,如下所示: 我一直在想,这样做是否更有效: 我主要担心的是,一些片段包含大量数据(相当大的列表和大量的视图)。将所有这些片段保存在内存中会有任何问题吗?与每次实例化新片段相比,它会提供任何优势吗(除了片段之间更快的切换)?是否有一个普遍接受的“更好”解决方案?