Kin*_*hah 8 android actionbarsherlock android-actionbar
我正在使用ActionbarSherLock库在预姜饼设备上显示Actionbar ..
我想在操作栏上的溢出菜单..我已经搜索了很多,我知道有硬件菜单按钮然后溢出菜单的设备将不会显示..
我也查看了ActionbarSherlock示例解决方案,但仍然无法获得解决方案..
我已经为动作栏创建了演示,当在没有菜单按钮的设备上进行模拟时,它将显示溢出菜单但是如果设备有菜单按钮则溢出菜单将不会显示..
以下是我的配置: -
public class MainActivity extends SherlockActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(R.style.Theme_Sherlock);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getSupportMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
// return true;
return super.onCreateOptionsMenu(menu);
}
}
Run Code Online (Sandbox Code Playgroud)
清单: -
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="demo.menu.actionbar_using_lib"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock"
>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
菜单配置: -
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/save"
android:title="@string/menu_save"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/setting"
android:title="@string/menu_settings"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/search"
android:title="@string/menu_search"
android:icon="@drawable/ic_action_search"
android:showAsAction="never"/>
<item android:id="@+id/refresh"
android:title="@string/menu_refersh"
android:icon="@drawable/ic_action_search"
android:showAsAction="never"/>
<item android:id="@+id/edit"
android:title="@string/menu_edit"
android:icon="@drawable/ic_action_search"
android:showAsAction="never"/>
<item android:id="@+id/delete"
android:title="@string/menu_delete"
android:icon="@drawable/ic_action_search"
android:showAsAction="never"/>
Run Code Online (Sandbox Code Playgroud)
我想显示溢出菜单..所以请提示我..在此先感谢..
Sid*_*ele 15
注意:有了这个建议,我不建议对任何读者使用ForceOverFlow.这只是列出了使其工作的可能性(迫使它工作).对每一个他自己.有些人可能想要它,也喜欢它.其他人可能没有.
我可能在猜测,但也许,这可能会为你做.
你可以认为这是一个黑客攻击,但我以前使用它来强制我的一个应用程序中的溢出菜单,它的工作原理.
try {
ViewConfiguration config = ViewConfiguration.get(MainPage.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)
另外,MisterSmith的第二个链接有一个解决方案,我的答案就在其中.Commonsware在这里强调了一些关于强制OverFlow菜单的想法:如何在ICS中控制OverFlow菜单的使用
编辑:在输入此建议时,您添加了评论.为了回应这一点,我想指出杰克沃顿拿出.ForceOverFlow主题.我没有尝试使用4.2.0版本,但是使用自定义主题,它可能会起作用.如果绝对必须使用ForceOverFlow,则可能必须使用旧版本.请在此处阅读我的回答:https://stackoverflow.com/a/13180285/450534.有些东西可能会让它发挥作用.
编辑2:正如OP在评论中指出的那样,Demos Sample APK实际上是ForceOverFlow中的动作栏Action Modes.在检查github上的相关Java文件之后,我有一种感觉,答案可能在于3个Java文件.
ActionModes增加menu items以非常规的方式:https://github.com/JakeWharton/ActionBarSherlock/blob/master/samples/demos/src/com/actionbarsherlock/sample/demos/ActionModes.java(53号线)ActionModeABS库中的Java文件:https://github.com/JakeWharton/ActionBarSherlock/blob/master/library/src/com/actionbarsherlock/view/ActionMode.javaMenuItemJava的文件ABS图书馆再次一部分:https://github.com/JakeWharton/ActionBarSherlock/blob/master/library/src/com/actionbarsherlock/view/MenuItem.java| 归档时间: |
|
| 查看次数: |
9290 次 |
| 最近记录: |