- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在编写一个 Android 应用程序来利用抽屉布局功能。我希望能够将抽屉布局用作整个应用程序中可用的导航工具。要使用抽屉布局,我在我的 Activity 布局 xml 文件中使用以下内容:
<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">
<!-- The main content view -->
<LinearLayout
android:id="@+id/main_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<ListView android:id="@+id/navigational_drawer"
android:layout_width="220dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#FFFFFF"/>
</android.support.v4.widget.DrawerLayout>
但是,我在将 DrawerLayout 包装在 PreferenceActivity 周围时遇到了很多困难。 PreferenceActivity 是一种我想保留的特殊 Activity ,因为它可以帮助我在我的应用程序中保持 Android 首选项的外观;也就是说,它使用 addPreferencesFromResource() 调用来加载首选项,而不使用 addContentView() 调用来加载 XML 文件;首选项资源通常包含不喜欢包装在 DrawerLayouts 中的 PreferenceScreen 标签。
有人必须处理这个问题,您是如何解决的?如果您的 Android 应用程序中有 PreferenceActivity 并且在同一 Activity 中有可用的 DrawerLayout,请分享您是如何做到的。任何帮助将非常感激。
编辑:如果我改变
<!-- The main content view -->
<LinearLayout
android:id="@+id/main_content_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
到
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
然后应用程序不会在加载 PreferenceActivity 时崩溃(因为 id“列表”与 Preference Activity 期望找到的内容相匹配);但是,抽屉没有显示。几乎就像 ListView“列表”下面的所有内容都被忽略了。
最佳答案
这花了我一段时间,但我能够为我的应用程序完成这项工作。我不知道这是否会有所不同,但我正在使用 HoloEverywhere
,所以我只假设这也适用于标准 PreferenceActivity
。
在我的 PreferenceActivity
中,当我覆盖所有版本的 setContentView()
以加载我的自定义 DrawerLayout
时,它与您的一样并且有一个 ListView
与 list
的标准 android id。在最后一个方法中,我确保在调用 super.setContentView()
之后调用 onContentChanged()
:
@Override
public void setContentView(int layoutResID)
{
setContentView( getLayoutInflater().inflate( layoutResID ) );
}
@Override
public void setContentView(View view)
{
setContentView( view, new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT ) );
}
@Override
public void setContentView(View view, LayoutParams params)
{
// inflate the drawer layout
super.setContentView( R.layout.navigation_drawer_base_layout );
DrawerLayout dl = findViewById(R.id.drawer_layout);
// do stuff here initialize the DrawerLayout like add a DrawerToggle, etc
...STUFF
// Call onContentsChanged() to let the Activity know it needs to refresh itself.
onContentChanged();
}
在 onBuildHeaders()
中,我仍然调用 loadHeadersFromResource()
为不同的 PreferenceScreen
创建所有 Header
>s.
关于android - 如何在 Android 应用程序中将 DrawerLayout 包装在 PreferenceActivity 周围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16762656/
这是我的 mainlayout 文件。 这是我编写与抽屉导航相关的代码的主要布局文件,还使用 include 包含工具栏。
我正在尝试使用新的 Android 架构设置带有应用栏配置的抽屉导航布局。我遇到的问题是 android studio 告诉我设置抽屉布局的方式已被弃用。 这是我的 xml 配置
最近我添加了“使用 google 登录”按钮并且工作正常,但是现在当我尝试运行该应用程序时弹出此错误,我不知道为什么。 这是完整的异常: E/AndroidRuntime: FATAL EXCEPTI
我正在尝试使用 DrawerLayout 显示两个 fragment ,滑出 fragment 具有 ListView 。我主要遵循在 developers site 上找到的示例. 我几乎一切正常,
这是我的 xml 布局文件: 但是当我启动我的 Android 应用程序时,出现错误(在运行时): E/AndroidRuntime: FATAL
我收到 DrawerLayout 无法转换的消息,因此显示错误并且我的应用程序崩溃。 我是一名新的 Android 开发人员,请帮助我。 这是我的主要 Activity : public class
我的申请遇到了奇怪的问题。我的 minSdkVersion 是 16。我的应用程序在 android lollipop 和更高版本的设备上工作正常,但在 android 4.1 和 4.4 上不工作。
我正在尝试创建一个带有透明 Toolbar(带有汉堡图标)和 NavigationView 的 DrawerLayout。 这是我的 main_activty 的布局: 这就是
这个问题已经有答案了: How to fix error: The markup in the document following the root element must be well-for
我对 DrawerLayout 有疑问。我设法做了一个抽屉,这不是问题。但不显示主要内容。 我尝试了所有可能的组合。即使我删除 fragment 主要内容仍然不显示。 有人能发现问
我需要帮助。我一直在尝试操纵它,但似乎无法完成。我正在尝试使图像适合抽屉布局。我调用页眉图像布局 (header.xml) 为: ... 为此
我对 drawerLayout 有疑问。在 drawerLayout 中,我有两个 Linearlayouts。一个是直接显示的主菜单,另一个是用抽屉滑动激活的。当我滑动抽屉菜单时,我无法点击按钮。但
我使用库制作了一个应用程序:jfeinstein10/SlidingMenu .但是这个库有点旧,我想使用 Appcompat 库。 所以我的问题是是否可以使用 drawerLayout 来滑动内容并
我正在制作一个简单的 Android 应用程序,我想制作一个 DrawerLayout 菜单。我去用的时候说必须声明抽屉布局。我检查了我的 SDK 管理器,Android 支持 jar 已安装并且是最
我已经查看了这个问题的所有其他答案,但仍然无法解决这个错误: app:id/drawerLayout) is not a sliding drawer 我在 closeDrawer 行遇到错误:
我有一个带有侧边菜单的 android 应用程序(默认的 android Activity 抽屉导航 Activity ) 我想隐藏滚动条。我为此使用了这段代码: NavigationView
我正在尝试使用全屏 DrawerLayout 实现完全透明的状态栏,就像在新的 IO19 应用程序中一样: 常规的透明状态栏效果总是有一个透明的灰色背景。 最佳答案 设置NavigationView的
我想要的是显示隐藏在左侧的栏,当用户进入布局时,想法是您知道有那个栏,而不必在操作栏上放置一个图标来表示它的存在 最佳答案 如果你想在第一次创建 Activity 时打开抽屉导航,你可以简单地做这样的
我有一个 View 与不在列表中的抽屉导航的底部对齐。 activity_main.xml
当我在打开和关闭抽屉布局上设置锁定和禁用滑动时,我无法通过按下手机上的后退按钮来关闭它,当模式未锁定时按下后退按钮导致关闭但当我将模式更改为例如: drawer_layout.setDrawerLoc
我是一名优秀的程序员,十分优秀!