Articles of android menu

ActionBar容量/溢出没有改变方向的变化

我有一个应用程序使用ActionBar,我自己处理方向的变化: android:configChanges="keyboard|keyboardHidden|orientation|screenSize" …和菜单应适合在ActionBar没有横向溢出,但不是肖像: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="@string/Game" android:id="@+id/game" android:icon="@android:drawable/ic_menu_manage" android:showAsAction="ifRoom|withText"/> <item android:title="@string/Type" android:id="@+id/type" android:icon="@android:drawable/ic_menu_edit" android:showAsAction="ifRoom|withText"/> <item android:title="@string/Other" android:id="@+id/other" android:icon="@android:drawable/ic_menu_gallery" android:showAsAction="ifRoom|withText"/> <item android:title="@string/Solve" android:id="@+id/solve" android:icon="@android:drawable/ic_menu_directions" android:showAsAction="ifRoom|withText"/> <item android:title="@string/Help" android:id="@+id/help" android:icon="@android:drawable/ic_menu_help" android:showAsAction="ifRoom"/> </menu> 在启动时,这可以正常工作: 景观: 肖像: (是的,我可以强制所有项目始终显示,他们将适合,如下所示,但可能会在一个较小的平板电脑上打破) 当模拟器改变方向时,ActionBar的容量似乎没有改变: 肖像,当我开始在风景: (这是好的,但不一致) 风景,当我开始肖像: 这看起来非常愚蠢,是我想解决这个问题的原因。 我把这个调用添加到invalidateOptionsMenu() ,但是没有帮助: @Override public void onConfigurationChanged(Configuration newConfig) { maybeMoveSomeViewsAround(newConfig); super.onConfigurationChanged(newConfig); invalidateOptionsMenu(); } […]

android片段子类中的getMenuInflater() – 无法parsing方法

我正在尝试在inheritanceFragment类的类中充气菜单。 这是我的OnCreateOptionsMenu()方法 – @Override public boolean OnCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.forecastfragment, menu) ; return true; } 这引发了以下错误: 无法parsing方法'getMenuInflater()' 我试过了 : MenuInflater inflater = getActivity().getMenuInflater(); 但是之后Android Studio突出显示了红色的@Override并指出: 方法不会覆盖超类的方法 我也尝试在同一个类中创build一个getMenuInflater方法,并让它返回new MenuInflater(this) public MenuInflater getMenuInflater() { return new MenuInflater(this); } 但是随后出现以下错误: 错误:不兼容的types:ForecastFragment不能转换为上下文 错误:方法不会覆盖或实现超types的方法 我该怎么办?

更改文字android中菜单项的大小

我在主要活动中使用以下代码在操作栏中使用简单的菜单项: package com.kaasib.ftpclient; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.app.ActionBar; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item){ boolean ret; if(item.getItemId() == R.id.connection_manager){ ret = true; }else{ ret = […]

基于自定义操作提供程序的垂直(旋转)文本项的Android ActionBar菜单

我正在添加一个菜单到一个操作栏项目。 菜单将包含每个项目的垂直文本。 菜单包含的内容并不重要。 我基本上只是想创build自己的视图,当我按下一个操作栏项目时会popup。 所以就这个问题而言,你可以把我的观点想象成一个大黑箱。 右边的图片是用GIMP制作的。 这是我正在做的,而不是我已经完成的。 我曾经尝试过 为了使用材质devise主题更新旧的应用程序,我一直在浏览Android文档中的所有课程,以添加应用程序栏 。 由于我的垂直文本菜单不适合常见的情况下,我必须做一个自定义的操作提供程序。 尽pipe如此,该文档没有提供自定义操作提供程序的完整示例。 我能find的最好的是这个堆栈溢出的答案 。 下图显示了我已经能够做的最好的事情(用一个黑色的视图代表我的未来菜单): 上图中的明星目前有行动提供者。 但是,自定义视图会在操作栏中被剪掉。 我如何让它漂浮在一切? 此外,我不希望它出现,直到我点击的行动栏项目。 目前,它只是马上显示。 码 MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // setup toolbar Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); … } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = […]

用于android项目的tab + swipe应用程序中的不同选项卡的不同菜单

我是一个初学Android应用程序和Java,基本上我是一个PHP开发人员。 我有一个项目的标签+刷卡应用程序, Reseller.java package com.idevoc.onsitereseller; import java.util.ArrayList; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.view.Menu; import android.view.MenuInflater; public class Reseller extends FragmentActivity { FragmentTransaction transaction; static ViewPager mViewPager; /** Called when the activity is first created. */ @Override public void onCreate(Bundle […]

选项菜单locking在星系s4上

我的应用程序使用旧式的选项菜单。 目前我们的目标是API 9.在Galaxy S4上我注意到了以下行为: 用户点击菜单button。 菜单按预期显示。 用户点击“更多”访问溢出部分。 溢出部分按预期方式显示。 用户点击后退button返回到原始选项菜单。 原始菜单按预期显示。 此时,点击选项菜单中的任何元素(包括“更多”)选项似乎没有效果。 但是系统实际上是caching这些水龙头。 如果用户点击五次菜单(没有可见的效果),则点击后退button以隐藏菜单,然后点击菜单button以再次显示菜单,所有caching的水龙头都立即发生。 onOptionsMenuItemSelected()每次用户点击该菜单项时调用一次。 这只发生在S4(可能还有其他三星设备)上。 值得注意的是,我没有看到这种行为使用Galaxy Nexus运行股票4.2.2。 这是三星的Android定制的错误,还是更有可能我在我的应用程序中做错了事情,股票的Android代码是更宽容?

onCreate之前调用ListPreviousOptionsMenu。 为什么和如何修复/绕过?

好的,所以我有ListList扩展ListList扩展ListFragment: public static class FavoritesList extends GalleryList { public static FavoritesList newInstance(int page) { FavoritesList list = new FavoritesList(); Bundle args = new Bundle(); args.putInt("page", page); list.setArguments(args); return list; } @Override public void onCreate(Bundle saveInstanceState) { super.onCreate(saveInstanceState); Cursor cursor = dbHelper.getGalleries(fav, preferences.getString("sort"+fav, "date desc")); listAdapter = new GalleryListAdapter(activity, cursor); setListAdapter(listAdapter); } … @Override public void […]

如何参数化Android上的菜单选项?

我想显示/隐藏Android应用程序的菜单的一些选项,取决于一些string,我将在strings.xml文件上设置为true / false。 作为一个例子,我将在strings.xml文件中包含这些string: <string name="option1">false</string> <string name="option2">true</string> <string name="option3">true</string> 所以在这种情况下,只能显示option2和option3 。 另一方面,我的意思是,在代码中,我尝试了以下内容: @Override public boolean onCreateOptionsMenu(Menu menu) { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); getMenuInflater().inflate(R.menu.main, menu); if((getResources().getString(R.string.option1)).equals("false")){ menu.getItem(R.id.option1).setVisible(false); } return true; } 但是option1仍然显示在菜单上。 我该怎么做参数化这些选项? 我可以删除这些选项,但如果我的客户希望这些选项再次激活,我希望在未来可以轻松地将错误值更改为true。 编辑:这是我的菜单: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/option1" android:title="Option 1" /> <item android:id="@+id/option2" android:title="Option 2" /> <item android:id="@+id/option3" android:title="Option 3" /> …. […]

Android ListView中的popup菜单问题

我是Android新手,我正在创buildListviewpopup式菜单。 但是我有它的width和height问题。 popup菜单可以占用更多的高度和宽度。 所以有很多问题,但是这些都没有帮助我。 创buildpopup菜单我已经尝试了以下方法 。 1]用下面的代码使用popup式菜单 : private void showPopupMenu(View view){ Context wrapper = new ContextThemeWrapper(this, R.style.PopupMenu); PopupMenu popupMenu = new PopupMenu(wrapper,view); popupMenu.getMenuInflater().inflate(R.menu.popup_menu,popupMenu.getMenu()); popupMenu.show(); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){ @Override public boolean onMenuItemClick(MenuItem item){ switch (item.getItemId()){ case R.id.install: Intent intent = new Intent(ViewAllRelationActivity.this,EditRelativeActivity.class); startActivity(intent); break; case R.id.addtowishlist: break; } return false; } }); } 它给出了这个输出 : 2]使用ContextMenu会显示以下输出 […]

如何以编程方式向菜单中添加子菜单项而不是菜单xml

我试图以编程方式将submenu项添加到NavigationView 。 我可以添加项目menu但不能进入submenu 添加项目菜单作品 Menu menu = mNavigationView.getMenu(); menu.add(Menu.NONE, Menu.NONE, index, "Menu Item1"); 但是将项目添加到子菜单不起作用 Menu menu = mNavigationView.getMenu(); SubMenu subMenu = menu.addSubMenu("Sub menu title"); subMenu.add(Menu.NONE, Menu.NONE, index, "SubMenu Item1");