S.T*_*ane 3 android actionbarsherlock android-actionbar
我有点困惑.我想在三点项目中显示操作栏的其余项目.但是当物品数量增加时我总是会失去它!谷歌搜索了一下之后,我发现了这种"有用"的方法:ASMUIRTI ANSWER
private void getOverflowMenu() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我按照自己的意愿测试了它.不幸的是,为了更好地理解这种方法的作用,我发现这是一个非常糟糕的黑客攻击,它破坏了与平台上其他应用程序的一致性(adamp的评论)
有人可以告诉我为什么这是一个黑客,什么是最好的解决方案?
这很简单.有些设备有其他菜单按钮没有.在带有菜单按钮的设备上,按下菜单按钮时会显示溢出的操作项目,而在按下三个点时不会显示它们.这就是设备制造商如何设计他们的设备,并且任何强迫他们以不同方式进行操作的尝试都被视为"黑客".这是不一致的,因为同一设备上的其他应用程序的做法不同.
这一切都归结为这样一个问题:您是希望跨单个设备在不同设备上保持一致性,还是在单个设备上保持所有应用程序的一致性.因为应用程序开发最终应该是关于用户的,所以IMO单个设备(对于一个用户)的一致性才是最重要的.
解决这个问题的最好方法是使用android:showAsAction标签,让Android决定,如何显示ActionBar中的动作,是否需要溢出菜单,以及是否用户如何访问溢出的动作项.
| 归档时间: |
|
| 查看次数: |
13298 次 |
| 最近记录: |