官方ActionBar的缺陷及解决办法
缺陷
一、不能自定义部分样式属性。
标题样式只能通过代码实现。(2.x)
二级菜单不能自定义样式,只能使用系统样式。(2.x,4.x)
二、存在二次加载问题。
ActionBar在Android4.x上会先加载一遍默认样式,然后再加载一遍自定义样式。
(标题通过代码实现时,使用导航时)
三、在不同设备上显示不一致。
在有Menu按键的手机上不显示Overflow菜单按钮。(2.x,4.x)
二级菜单在Android 2.x与Android 4.x上的显示不一致。
四、无法使用分级导航(2.x,4.x),抽屉导航存在严重缺陷(2.x)。
解决办法
纯手工修复:
Overflow问题,强制显示按键(android:icon设为Overflow,showAsAction="always")并弹出自定义popmenu,使用后多余的按钮无法自动显示在Overflow上。
二级菜单显示不一致及自定义样式问题,弹出自定义popmenu。
无法解决问题二、四。
二次加载问题,先建立一个普通Activity,设置样式为Translucent和NoTitleBar(可以通过style或代码实现),再Intent到目标Activity,目标Activity没有android:label属性但是有ActionBar(AndroidManifest.xml)。
无法解决问题四。
使用第三方库:
ActionBarSherlock4.10可解决Overflow问题,高版本无效。
SlidingMenu+ViewPagerIndicator可解决问题四。
可能还存在其他问题。
未解决问题
目前没有,以后遇到再说。
相关推荐
2. **使用ActionBarSherlock库**:对于兼容更低API级别的设备,可以引入ActionBarSherlock库,它提供了与官方ActionBar相同的接口和功能。通过这个库,开发者可以在Android 2.1及更高版本上实现自定义的ActionBar。 ...
解决这种冲突的一种常见方法是通过监听滑动事件并进行适当的事件拦截和分发。例如,可以设置SlidingPaneLayout的滑动监听器,当抽屉打开时禁用ViewPager的滑动,反之亦然。 在实现这个组合时,开发者提到“模仿网易...
3. 动态修改:在代码中,可以通过`getSupportActionBar().setBackgroundDrawable()`方法来动态改变ActionBar的背景。 例如,你可以创建一个名为`styles.xml`的文件,然后定义如下样式: ```xml <!-- 其他主题...
- 在API 13及以上版本,可以使用`ActionBar.addTab()`方法添加Tab。每个Tab通常对应一个Fragment或Activity,用于展示不同内容。 - 对于API 11-13,可以使用`Action BarSherlock`支持库来实现相同的功能。 - 自...
在Android 3.0(API级别11)及以上版本,系统默认支持ActionBar,但在更早的版本(如2.x)中并未内置此功能。本文将深入探讨ActionBar的基础知识,并分享如何通过各种方法在Android 2.x版本中实现对ActionBar的适配...
- **动态隐藏/显示 ActionBar**:在运行时,可以通过调用 `ActionBar.hide()` 和 `ActionBar.show()` 方法来动态控制 ActionBar 的可见性。 - **增加 Action Item**: - **Action Item 定义**:实质上是一个 ...
对于支持Android 2.1(API Level 7)及以上的应用,可以使用`android.support.v7.app.ActionBar`或`androidx.appcompat.app.ActionBar`作为兼容库。`AppCompatActivity`和`ActionBarDrawerToggle`类可以帮助实现与...
1. 设置ActionBar:在Android 3.0及以上版本,系统默认提供了ActionBar,可通过在`AndroidManifest.xml`中的Activity标签添加`android:theme="@style/Theme.AppCompat"`来启用。对于更低版本,可以借助AppCompat库...
ActionBarDemo ActionBar初探——ActionBar简述及三类ActionBar的使用 详细内容请看: http://blog.csdn.net/hander_wei/article/details/24182019
然后在Activity中,通过`setSupportActionBar()`方法设置`Toolbar`为`ActionBar`: ```java Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setTitle("你的...
6. **Action Bar Sherlock库**:对于支持更低API级别的设备,可以使用ActionBar Sherlock库,它提供了对API Level 7及以上的ActionBar兼容。 7. **Action Bar样式和主题自定义**:可以通过修改styles.xml文件中的...
在Android开发中,ActionBar是一个非常重要的组件,它在Android 4.0(API级别14)及更高版本中被引入,作为应用界面顶部的标准导航和操作区域。在本示例中,我们将深入探讨如何在Android应用程序中使用和自定义...
在Android应用开发中,ActionBar是系统提供的一种顶部导航栏,用于展示应用的标识、标题以及操作选项。然而,系统默认的ActionBar标题布局通常是左对齐的,这在某些设计需求中可能不符合要求。本篇文章将深入探讨...
2. **配置ActionBar**:在Activity的`onCreate()`方法中,通过调用`getSupportActionBar()`获取`ActionBar`实例,然后使用`setTitle()`, `setIcon()`, `setDisplayOptions()`等方法进行设置。 3. **添加操作按钮**...
- **Action Bar Sherlock**:对于兼容低版本Android的库,使得在2.1及以上的版本也能使用ActionBar。 - **Toolbar**:自Android 5.0(API Level 21)开始,推荐使用Toolbar作为自定义的ActionBar,具有更高的灵活...
ActionBar是Android SDK中的一个重要组件,它在Android 3.0(API级别11)及更高版本中引入,作为应用界面的顶部区域,通常包含应用图标、标题、菜单选项和其他操作按钮,为用户提供导航和控制。 【描述】提到的参考...
对于支持Android 2.1(API级别7)及以上的版本,开发者可以使用ActionBar Sherlock库,它提供了对早期版本的兼容性。该库提供了与原生ActionBar相同的功能,并保持了界面一致性。 ### 五、App Bar代替ActionBar ...
本篇将详细解析ActionBar的功能、使用方法及其实现过程。 ### 一、ActionBar简介 ActionBar是Android 3.0(API Level 11)及以上版本中默认包含的一个组件,它为用户提供了一个直观的界面来执行常见的操作,如返回...
1. 使用`show()`、`hide()`或`setDisplayOptions()`方法控制ActionBar的显示和隐藏,以及决定显示哪些元素(如标题、Home图标等)。 五、导航模式 1. 设置ActionBar的导航模式,如`NAVIGATION_MODE_LIST`或`...
8. **动态加载和隐藏ActionBar**:根据应用需求,可以使用`getSupportActionBar().show()`和`getSupportActionBar().hide()`方法来控制`ActionBar`的可见性。 通过以上知识点,我们可以实现一个具有顶部导航功能的...