Articles of android actionbar

操作栏 – ifRoom选项留下太多空间

我的操作栏上有问题,我尝试在其上设置搜索视图 ,以便使搜索栏可扩展。 这很好,除了我必须使用ifRoom选项设置所有其他菜单项,以便在单击搜索图标时让搜索字段占据所有空间。 这部分也运行良好,除了太多的菜单项被推入菜单溢出,垂直屏幕上只剩下2个图标(包括搜索栏)。 我对另一个有5个菜单项的活动做了另一个测试: 在第一种情况下,我用android:showAsAction=”always”设置所有这些android:showAsAction=”always” 在第二种情况下,我将所有这些设置为“android:showAsAction =“ifRoom”` 结果如下: 情况1: 案例2: 为什么我使用ifRoom ,只显示2个图标,而实际上5个可以轻松填充该位置? 因此,我的搜索视图项旁边只有一个菜单项… 谢谢!

如何在所有Android版本上显示支持库的ActionBar和工具栏的阴影?

这是一个简单的问题: 我使用新的支持库,它允许我有一个工具栏实例,甚至将其设置为活动的actionBar(或使用默认的)。 如何自定义工具栏(或默认ActionBar)投射的阴影? 我试过使用“setElevation”(两者都有),但它似乎没有在Android Lollipop上做任何事情。 另外,我找不到如何在Lollipop前版本上自定义阴影。 可能有这个API吗? 或至少是一个drawable(我没有find,即使我已经尝试过)? 好的,我已经设法find了下一件事: 对于Lollipop和pre-Lollipop,当您的活动使用正常的AppCompat主题(例如“Theme.AppCompat.Light”)时,阴影看起来应该很好。 但是,当您使用“setSupportActionBar”(并使用适当的主题,例如“Theme.AppCompat.Light.NoActionBar”)时,您将遇到阴影的一些问题。 对于pre-Lollipop,你可以在工具栏下面放置一个FrameLayout,它看起来就像用于普通主题的那样,如下所示: 您可以使用FrameLayout作为活动的内容,或使用我所做的。 您还可以通过为棒棒糖前置整数0和为棒棒糖及以上版本放置2来设置其可见性,就像我使用“action_bar_shadow_background_visibility”一样。 这是一个丑陋的解决方案,但它可以工作,但仅限于前Lollipop版本。 在任何情况下,我仍然找不到一种方法来为棒棒糖显示阴影,以防我使用“setSupportActionBar”。 我尝试在工具栏和操作栏上使用“setElevation”(在调用“setSupportActionBar”之后立即使用“getSupportActionBar”)。 我也没有得到如何获得动作栏的标准高度,因为我注意到很多教程说使用“minHeight”作为工具栏。 非常感谢这方面的帮助。 谁能帮我这个? 再说一次,为了说清楚,这就是我的要求: 对于Pre-Lollipop,显示在工具栏和ActionBar的支持库上使用的相同阴影。 Lollipop相同(但使用Lollipop拥有的那个) 额外:在Lollipop上自定义阴影更加“精致”(也许可以在所有版本上自定义)。 额外:为什么工具栏的minHeight获取操作栏高度的值,而不是高度本身? 编辑:好的,到目前为止,这是模仿Lollipop的影子: RES /布局/ toolbar_action_bar_shadow.xml RES /布局-V21 / toolbar_action_bar_shadow.xml RES /抽拉-V21 / RES /布局/ msl__action_bar_shadow.xml 它不完全相同,但它是相似的。 编辑:我仍然不知道为什么会这样。 我认为我在这个问题上写的代码是误导性的,因为所有要做的就是设置背景。 然而在我正在测试它的应用程序仍然无济于事。 我正在尝试修复的应用程序在导航抽屉上方有工具栏。 有一会儿,我认为可能是因为我制作了一个自定义工具栏(从工具栏扩展)并改变了它的alpha值(根据导航抽屉),但即使我使用普通工具栏并禁用所有相关内容到alpha,它仍然无法正常工作。 此外,不仅如此,而且在一个全新的项目中,我试图为工具栏设置半透明背景,并根据“setElevation”方法得到阴影。 现在我更难find导致这个问题的原因,因为它似乎不是因为透明而不是因为自定义工具栏类…… 这是包含工具栏的活动的布局,以防这可能有任何帮助: <!–

以编程方式全屏制作片段

我有一个ViewPager和FragmentPagerAdapter在一个活动中设置3个片段。 所有片段同时加载并使用保存在内存中 mPager.setOffscreenPageLimit(2); 其中一个片段包含我想要全屏显示的相机预览,没有状态栏或操作栏。 其他片段要求显示操作栏。 如何在保持其他两个片段正常的同时,仅将相机预览片段全屏显示? 我尝试过使用主题,这意味着打破了操作栏。 以编程方式调用以下内容没有帮助,因为它强制整个活动全屏(因此其他两个片段随之而来): requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.main); 我也尝试过实现ViewPager.OnPageChangeListener: public void onPageSelected(int position) { if(position == 1) getActionBar().hide(); else getActionBar().show(); } 这确实隐藏了操作栏,但它没有隐藏系统状态栏(我正在谈论通知,状态图标和时间的位置),并且操作栏隐藏/显示animation在滑动时也非常不连贯。 有关我想要做的事情的一个例子,请参阅Snapchat – 他们设法完美地完成相机和其他片段之间的滑动。 编辑: 所以我将onPageSelected更改为: public void onPageSelected(int position) { if(position == 1) { MainActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); MainActivity.this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } else { MainActivity.this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); MainActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } } 这使我可以更改状态栏是否显示。 但是,它会造成大量的猛击。 操作栏的问题相同。 我注意到在Snapchat中状态栏在标签更改完成后上下滑动。 我不确定如何实现这一点,所以有关这方面的任何建议将不胜感激。

FragmentPagerAdapter麻烦和困境:构造函数未定义

编辑:我已经重新编写了一些代码来尝试通过错误 (但现在应用程序在启动时崩溃)。 首先,我的类现在扩展FragmentActivity,以便我可以访问方法getSupportFragmentManager();. 然后,在创建中,我改变了我的构造函数: mTabsAdapter = new TabsAdapter(this.getSupportFragmentManager(), this, mViewPager); 从那里,在我的子类中,我更改了代码以反映这一点: public TabsAdapter(FragmentManager fm, Activity activity, ViewPager pager) { super(fm); mContext = activity; mActionBar = activity.getActionBar(); mViewPager = pager; mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); } 正如我所说,它仍然崩溃,此时有任何想法吗? 开始原始问题:我有以下错误:“构造函数FragmentPagerAdapter(FragmentManager)未定义”* 当我尝试执行以下行时: super(activity.getFragmentManager()); 这一行跟随我的public TabsAdapter(Activity activity, ViewPager pager) {它正在扩展FragmentPagerAdapter 。 基本上,我正在尝试获取我的8+片段应用程序(8个片段,一个活动,其中包含一组链接到每个片段的ActionBar选项卡[为了简洁起见,此处仅显示一个“loginTab”])。 这是我的整个代码: 编辑:我用于参考的页面: http : //developer.android.com/reference/android/support/v4/view/ViewPager.html Android : Page Swiping using ViewPager package […]

Android:标题栏和ActionBar之间有什么区别

我不知道他们是否是同一个东西,他们似乎有不同的方法去除它们但我不确定这些只是多种方法来做同样的事情。 那么有什么不同,如果有什么呢? 参考: https://developer.android.com/reference/android/R.id.html#title https://developer.android.com/reference/android/app/ActionBar.html (使用材料设计,通常用工具栏表示)

更改操作栏onPressed颜色

我无法弄清楚如何在Android上更改操作栏项“onPressed”颜色。 我不是在谈论动作栏背景颜色,而是关于蓝色状态。 我怎样才能改变这种颜色或至少摆脱它? 例如,带有homeAsUpIndicator的App Icon。 我试图改变动作栏样式和菜单项样式,但没有任何效果。 谢谢 编辑这是我到目前为止的实现: 我的风格xml: @style/MyActionBar @android:color/transparent @anim/fadein @anim/fadeout @android:color/transparent @drawable/actionbarheader @drawable/actionbarheader @drawable/actionbarheader @style/ActionBarTitle @android:color/transparent @style/MyActionButtonStyle @drawable/actionbarlogo @drawable/app_icon> 20sp @android:color/transparent 然后我有一个drawable for actionbarogo: 我的菜单xml用于操作栏项: 最后,该项目的drawable: 以下是我为ActionBar创建菜单项的方法: public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); actionBar.setIcon(R.drawable.actionbarlogo); return true; } public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item= menu.findItem(R.id.ContactsMode); if(ContactsButton) item.setVisible(true); […]

在Android 4上自定义ActionBar选项卡

我正在尝试在ActionBar上自定义Tabs。 我只想将标签与电话屏幕对齐,使其可以伸展各种屏幕。 但我得到的只是: 我用于主题的代码是这样的: @style/MyActionBarTabTextStyle 14dip 0dip 是否可以减少字体并摆脱那些蓝线? 提前感谢您的帮助。 PS:按钮也很奇怪。 没有文字(虽然它应该是)……

如何使用Holo.Light主题,但ActionBar使用Holo而不使用ICS?

我想有一个黑暗的ActionBar,但让应用程序的其余部分使用Holo.Light主题。 我知道在ICS / 4.0中有一个Theme.Holo.Light.DarkActionBar主题,但我希望这也适用于Honeycomb / 3.0 +。 在片刻我正在使用黑暗的Holo主题,而对于我的其他组件,我正在使用ContextThemeWrapper。 但这是很多工作,很容易导致错误。 这可能吗?

首选项和操作栏中的开/关切换按钮 – 冰淇淋三明治样式

我指的是蓝色ON / OFF样式,如ICS手机上的默认Android设置应用程序所示。 它也可以在这里看到: http : //android-developers.blogspot.com/2012/02/android-design-v2-now-with-stencils.html我想将它们放在Preference屏幕中,我是否必须使用自定义首选项小部件? 此外,在操作栏中放置切换按钮是否容易? 这似乎是可能的,因为它是在ICS的默认Android设置中完成Wifi设置,但它可能是一个自定义菜单项? 任何帮助是极大的赞赏。

ActionBarCompat:在创建活动之前隐藏ActionBar(bug?)

所以我使用ActionBarSherlock并决定切换到新的ActionBarCompat。 使用ABS,可以使用本文中描述的方式隐藏ActionBar: 如何在创建活动之前隐藏操作栏,然后再次显示它? 但是,使用ActionBarCompat,应用程序在API14上崩溃,因为当你将android:windowActionBar设置为false , getSupportActionBar()方法返回null,即使你已经声明了getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 进入onCreate()方法。 有趣的是,如果你调用getActionBar() ,你得到的对象,一切正常。 那么,这是一个错误还是我错过了什么? 欢迎任何想法! styles.xml文件: false 0dp MyActivity.java文件: … @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the action bar feature. This feature is disabled by default into the theme // for specific reasons. getWindow().requestFeature(Window.FEATURE_ACTION_BAR); … // By default the action bar is hidden. getSupportActionBar().hide(); }