Android:导航抽屉和 ActionBar 兼容

2023-12-19

我开始与导航抽屉 using 动作栏夏洛克并取得了良好的结果,但我的公司不太可能很快批准这个开源,所以我正在努力切换到 ActionBarCompat。

ActionBar兼容昨天(2013年7月24日)刚刚正式发布。有人让两者能够很好地合作吗?我希望我能回答我自己的问题,但看看是否有人能做到这一点。比赛开始了! :-)

YouTube 关于 ActionBarCompat 的发布: https://www.youtube.com/watch?v=6TGgYqfJnyc https://www.youtube.com/watch?v=6TGgYqfJnyc


更新(工作代码,是的!):我已经从 Google 获得了示例 NavigationDrawer 应用程序,并将其转换为使用 ActionBarCompat 并且工作正常。您可以在这里找到它作为参考或开始您的项目:https://github.com/bcrider/NavigationDrawerActionBarCompat https://github.com/bcrider/NavigationDrawerActionBarCompat

2.x 版本看起来甚至比 ActionBarSherlock 的效果更好,但我必须更多地使用 ActionBarCompat 来看看我是否更喜欢它。



注意:我太新了,无法在一篇文章等中添加多个链接,所以我回答我自己的问题而不是编辑它(希望这不违反规则?)。一旦允许,将编辑原始内容。

使用 ActionBarCompat 添加导航抽屉的简单方法:我发现转换现有应用程序并不像我想象的那么糟糕。谷歌的样本让我相信片段是必需的,但事实并非如此......远非如此。

您可以简单地使用 DrawerLayout 包装现有布局并插入 ListView(或任何包含 ListView 的布局)以进行实际导航。然后将普通代码添加到现有的 Activity(扩展 ActionBarActivity)并构建导航(无论如何)。

以下是一些用于包装现有布局的示例代码:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

[YOUR EXISTING LAYOUT GOES HERE]

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#111"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />

</android.support.v4.widget.DrawerLayout>

如果您想从使用片段的示例应用程序开始并从那里开始,这里是我基于示例代码的 github 存储库:https://github.com/bcrider/NavigationDrawerActionBarCompat https://github.com/bcrider/NavigationDrawerActionBarCompat

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:导航抽屉和 ActionBar 兼容 的相关文章

随机推荐

  • 如何在解决方案中找到未使用的 NuGet 包?

    如何在解决方案中找到未使用的 NuGet 包 我有很多解决方案 其中有很多已安装的软件包 并且其中很大一部分被标记为有更新 但是 我担心可能会发生重大更改 因此我首先想通过删除任何未使用的软件包来进行清理 ReSharper 2016 1
  • 如何使用 Javascript、PHP 等将 html + CSS 页面转换为 pdf? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 但请记住我需要一个免费的图书馆它不会干扰我的网页的 CSS 并轻松转换我的网页的某些部分 我使用了 J
  • 经典 ASP 页面自动将 IE 8 中的 Quriks 模式设置为默认模式

    查看 HTML 时 IE 8 将默认文档模式设置为 IE8 标准 但它会在 ASP 页面上进入怪异模式 即使我使用 这并没有什么帮助 我应该怎么办 我要做的第一件事是将相同的输出放入 HTM 文件中并访问它 如果你得到不同的结果 那么确实发
  • terraform 支持数学舍入吗?

    是否可以在 terraform 字符串插值中舍入整数值 这有点像黑客 不使用 terraform 字符串插值 但是 您可以使用外部数据源 https www terraform io docs providers external data
  • SOAP HTTPS 测试获取类转换异常(字符串到整数)

    我正在使用 HTTPS 上的独立应用程序测试 SOAP 请求 我已经从 WSDL 创建了所需的类 使用 wsimport 我已经使用一些模拟值填充了对象值 令人惊讶的是 我的所有 XML 值都在 String 中 但我收到一个类转换异常 为
  • npm test 未检测到 jenkins 中新的测试文件更改

    Jenkins jest 和 CI 我使用 create react app 创建了一个 React APP 并使用 JEST 进行测试 我在创建的 app test js 文件中做了一些新的更改 并提交给 git hub 当我运行 npm
  • 捕获 Excel 数据透视表刷新事件

    是否有与数据透视表的数据刷新相对应的事件 我已经找到了 worksheet pivottableupdate 事件 但这似乎每次我更改过滤器或操作数据透视表时都会被调用 这在我的宏中非常频繁 我需要的只是捕获底层数据何时更新 有办法做到这一
  • 隐式运算符和类型转换器是否等效?

    在我看来 实现隐式运算符与 TypeConverter 似乎非常容易 因此我假设它们并不等效 因为框架中 TypeConverters 的流行 请参阅扩展 FrameworkElement 的任何内容 但为什么 创建 string gt o
  • 通过 HTTP 传输文件的 Response.TransmitFile 的替代方案

    我正在开发一个允许用户下载文件的 ASP NET 网站 以前 文件存储在与网站相同的服务器上 因此我们可以执行以下操作 Response Clear Response AddHeader Content Disposition attach
  • WinForms - 本地化 - UI 控件在其他文化中的位置不同

    我做了 UI 设置 原始语言是英语 之后我将 Localized 属性设置为 True 将原始 resx 文件复制到 frmMain de De resx 例如 翻译所有字符串 一切正常 但现在我想改变控件的位置 之后变化可见only原始
  • React-native --variant 选项

    可能的值是什么 variant选项除了release 它记录在哪里 我在反应本机文档中找不到 我应该指定这个选项吗debug or devDebug调试构建的价值 thanks 只有两个选择 release and debug 默认vari
  • 如何从文本文件中删除 ^M 并将其替换为下一行

    假设我有一个包含以下内容的文本文件 Hello what is up M M What are you doing 我想删除 M并将其替换为下面的行 所以我的输出看起来像 Hello what is up What are you doin
  • 为所有用户添加一个键到 HKEY_CURRENT_USER

    我有一个安装程序 它在 HKEY CURRENT USER 上安装一个密钥 当我运行安装程序时 它仅将其添加到正在安装的用户上 有没有办法一次性为所有用户添加密钥 Thanks 你必须遍历所有不同的用户HKEY USERS 这需要更高的权限
  • 使用 ls 按一定顺序 scp 文件

    每当我尝试 SCP 文件 在 bash 中 时 它们最终都会以看似随机 的顺序出现 我找到了一种简单但不太优雅的方法来保持所需的顺序 如下所述 有聪明的方法吗 Edit 从这里删除了我早期的解决方案 使用其他建议进行清理 调整 并添加为下面
  • 如何在Linux中创建名称以破折号开头的文件? (例如“-文件”)

    如何在 Linux 中使用命令行创建名为 file 的文件 在其前面指定一个路径 例如 file
  • 从 GCP HTTP 函数调用启动后台进程的最佳方式?

    所以 根据这里的文档https cloud google com functions docs writing http https cloud google com functions docs writing http 终止 HTTP
  • 使用OpenGL ES纹理缓存而不是glReadPixels来获取纹理数据

    在 iOS 5 中 引入了 OpenGL ES 纹理缓存 以提供从相机视频数据到 OpenGL 的直接方式 而无需复制缓冲区 里面有关于纹理缓存的简单介绍会议 414 WWDC 2011 的 iOS 5 OpenGL ES 进展 http
  • 使用 GraphicBuffers 快速读取纹理

    我正在编写一些使用着色器在 Android 上运行一些 GPGPU 代码的代码 通常是一个Framebuffer使用因此计算结果存储在纹理中 输入数据通常也是纹理 为了提高性能 最好摆脱glTexImage2D and glReadPixe
  • sorted() 仅按第一位数字排序[重复]

    这个问题在这里已经有答案了 我需要对表格的第一列进行排序 它看起来像 6000 799 7000 352 8000 345 9000 234 10000 45536 11000 3436 1000 342 2000 123 3000 123
  • Android:导航抽屉和 ActionBar 兼容

    我开始与导航抽屉 using 动作栏夏洛克并取得了良好的结果 但我的公司不太可能很快批准这个开源 所以我正在努力切换到 ActionBarCompat ActionBar兼容昨天 2013年7月24日 刚刚正式发布 有人让两者能够很好地合作