【发布时间】:2013-03-27 13:54:07
【问题描述】:
我有一个ViewPager 并且每个页面都显示一张照片。我展示了一个拆分 ActionBar 并使用了喜欢/不喜欢的操作,因此用户可以投票“喜欢”照片或“不喜欢”它。
我成功实现了每张照片的投票功能。
问题:
如何为每张照片设置所选投票的样式?也就是说,如何根据照片的当前状态来管理MenuItem图标?
【问题讨论】:
标签: android android-actionbar actionbarsherlock
我有一个ViewPager 并且每个页面都显示一张照片。我展示了一个拆分 ActionBar 并使用了喜欢/不喜欢的操作,因此用户可以投票“喜欢”照片或“不喜欢”它。
我成功实现了每张照片的投票功能。
问题:
如何为每张照片设置所选投票的样式?也就是说,如何根据照片的当前状态来管理MenuItem图标?
【问题讨论】:
标签: android android-actionbar actionbarsherlock
您应该创建一个boolean 来检测照片何时被点赞,然后在您的MenuItem 上调用setIcon。
final MenuItem liked = YOUR_MENU.findItem(THE_LIKED_ACTION_ID);
if (isLiked()) {
liked.setIcon(YOUR_LIKED_DRAWABLE);
} else {
liked.setIcon(YOUR_DEFAULT_LIKED_DRAWABLE);
}
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
invalidateOptionsMenu();
}
});
【讨论】:
ViewPager 调用 invalidateOptionsMenu,因为您需要调用它。就阵列而言,我想如果这是你想要的,你可以这样做。此外,您应该考虑删除“不喜欢”操作。它是重复的。如果用户不喜欢某张照片,他们就不会按“喜欢”按钮。