Android的 - 要显示在ICS 3点菜单(Android - want to show 3-d

2019-10-18 02:20发布

我想建立我的应用程序时,显示3个点的溢出菜单键(旁边RecentApp虚拟键)

android:targetSdkVersion="15"

这是我的故事。 我的应用程序包括两个LIB项目(仅罐子+ RES无源),LIB-A正在使用的菜单; 当应用程序与目标SDK = 10,效果很好建,3个点的图标旁边系统导航栏上RecentApp键显示出来。 现在LIB-B升级了,我必须建立与目标SDK = 15的应用程序,但是这使得LIB-的UI菜单消失。 我想LIB-一个像以前一样有菜单。

我检查了这些帖子,这是非常有帮助的,

不显示时目标SDK版本大于10 Android操作栏,菜单

Android的主题,全屏和操作栏

我既不能申请ActionBarSherlock也不设定目标SDK来10所以我想知道如果使用旧的主题(不全息主题)会有所帮助。 我创建了一个主题,从[android.Theme]派生,适用于所有活动LIB-A(在应用程序的清单XML),但没有运气。

所以我的问题是,将主题能解决问题吗?

Answer 1:

我觉得你根本无法。 在系统栏“溢出菜单”是有传统的原因,并且它显示了当且仅当一个继承应用程序(目标SDK <11)与虚拟系统棒的设备上运行。 它根本就没有打算瞄准更高版本时出现。



Answer 2:

不,你不能这样做。 你可能会下载actionBarSherlock(即4.1.0)其中absForceOverflow是现有方法的早期版本,所以这将迫使你3个点的菜单,每个系统高达1.6,但是这可能会导致您的问题(像硬件键盘等手机)。

我以前无意中发现这个问题的几个星期,我解决了这个有一个解决办法:一个简单的菜单图标拖入动作条(3个点的图标),如果你点击它会出现一个自定义对话框,看起来就像原来的菜单(您可以通过编程将它放在正确的地方,因为你知道了吧默认高度(例如48dp对华电国际电话))。

希望这可以帮助。



Answer 3:

是的,你可以,你只需要targetVersion从你喜欢这个onCreate方法改变:

@Override
public void onCreate(Bundle savedInstanceState) {
    getApplicationInfo().targetSdkVersion = 10; // To enable the 3-dot menu call this code before super.OnCreate
    super.onCreate(savedInstanceState); 
}

经测试在Android 4.XX和Android 3.0



文章来源: Android - want to show 3-dots menu on ICS