问题标签 [drawerlayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
63067 浏览

android - DrawerLayout 双抽屉(左右抽屉同时)

我有一个应用程序,我想在其中实现一个双抽屉 - 一个来自左侧,一个来自右侧。左抽屉用于应用导航,右抽屉用于结果过滤。

所以,布局是这样的:

您可以在这里清楚地看到“left_drawer”和“right_drawer”,以及它们各自的重力——“start”和“end”,这确实有效!你可以把它们都拉出来。

问题是,当我实现 DrawerToggle 时 - 它只打开左侧抽屉,而不关闭右侧抽屉,所以如果打开右侧抽屉并且我按下 DrawerToggle 按钮 - 左侧抽屉也打开,并与右侧抽屉重叠.

我想得到几个解决方案:

  1. 在右侧制作相同的 DrawerToggle 按钮,具有与左侧相同的行为和动画。
  2. 将抽屉放在我要打开的抽屉的另一侧 - 自动关闭(如果左侧抽屉打开并且我按下右侧抽屉的拨动开关,反之亦然)。

而且我还没有想出如何做到这一点,因为 DrawerToggle 接受 DrawerLayout 本身作为参数,而不是单个抽屉......

我正在使用支持库。

有人有想法么?先感谢您。

0 投票
5 回答
10852 浏览

android - DrawerLayout - 异常调度输入事件

大约一周前,我最近开始在一个新项目中使用 DrawerLayout,一切正常。除了用我的手指刷入和刷出的奇怪时间之外,它会崩溃。

如果我使用 ActionBar Up/Home MenuItem,它每次都能正常工作。

在 LogCat 中,我得到两个似乎都指向内部 android 位置的堆栈跟踪,所以我不太清楚如何解决这个问题。

我只是尝试创建一个新应用程序,看看是否是我之前正在做的事情导致了这种情况,但它也发生在新应用程序中。

我在“新 Android 应用程序”窗口中使用 Master/Detail Flow 模板创建了新应用程序,将所有内容保留为默认值,并更改了 activity_item_list.xml 以在其中包含以下内容:

DrawerLayout 显示,我仍然可以从屏幕边缘拖动它,但它仍然在这个测试应用程序中崩溃。

这是我用手指拖动它后看到的堆栈跟踪:

我在这里缺少什么吗?

编辑:10天后仍然无法弄清楚,我至少可以确认这不仅仅是我得到这个吗?

0 投票
1 回答
2690 浏览

android - 带有自定义适配器的 Android DrawerLayout 和 Listview

我正在创建一个带有相对布局和内部列表视图的抽屉布局(一个用于主要内容,一个用于导航)

对于列表视图,我创建了一个自定义适配器,并使用具有 imageview 和 textview 的 list_item xml 文件创建每一行。

该应用程序运行,但是当我打开抽屉时,我只看到没有列表视图的背景。现在,如果我使用 ArrayAdapter(默认)尝试它,则会显示列表视图。

有什么建议吗?

我的自定义适配器

}

在我的主要活动中

0 投票
1 回答
386 浏览

android - DrawerLayout 将两个主页图标添加到我的操作栏

按照此处的示例,我在我的活动中添加了一个抽屉,但由于某种原因,我得到了两个主页图标(见下面的屏幕)。

我没有向操作栏添加任何其他内容,没有自定义视图,也没有使用 SherlockActionBar。该示例的唯一区别是我有一个启用抽屉的基本活动类,并且我的所有活动都是它的子类。

在此处输入图像描述

0 投票
1 回答
2627 浏览

java - 在 Android 应用中使用 DrawerLayout 时手势不起作用

我有一个带有单个 Activity 的 Android 应用程序。此活动使用此布局:

然后,在我的源代码中,我在构造函数中定义了两个手势检测器:

我以这种方式覆盖 onTouchEvent :

我的问题是没有检测到手势(尽管我可以用滑动手势打开抽屉)。如果我将抽屉布局替换为例如线性布局,则不会出现此问题,因此原因是导航抽屉。我究竟做错了什么?

0 投票
2 回答
13288 浏览

android - 如何使用可见句柄实现 DrawerLayout

我已经成功地为我的应用程序实现了 NavigationDrawer。

我的应用程序显示一个在屏幕左侧打开的抽屉。

我的问题是我需要在左侧添加一个按钮。可以单击或滑动该按钮以打开左侧抽屉。我能做到的。

但是按钮应该看起来像是抽屉的一部分,会溢出到屏幕上。

这意味着按钮应该在抽屉打开和关闭时同时滑动。

关闭状态:

在此处输入图像描述

开启状态

在此处输入图像描述

我尝试将按钮添加到左侧抽屉的布局中,但似乎你不能让东西出现在它的边界之外,而且当你关闭它时,抽屉总是会完全隐藏起来。

现在我正在尝试添加它以向主 DrawerLayout 添加一个按钮,并使其与左侧抽屉的右侧对齐......但没有运气......看起来 DrawerLayout 不能有两个以上的孩子...... .

任何帮助将不胜感激。

我正在使用支持库 (v4)

[编辑] 而且我支持 API 级别 8...所以不能使用ImageView.setTranslationXView.OnAttachStateChangeListener

0 投票
1 回答
353 浏览

android - 使用 DrawerLayout 和 FlyOutContainer

我有一个问题,我想在我的布局中放入抽屉布局和 FlyOutContainer,但在错误日志中显示错误:无法将 DrawerLayout 强制转换为 FlyOutContainer 我该怎么做才能解决这个问题。我需要抽屉布局才能进入 MainActivity。

希望你能帮助我,并为我糟糕的英语感到抱歉。

0 投票
0 回答
501 浏览

android - Android DrawerLayout - 操作栏将颜色更改为接近白色

我们有一个使用 ActionBarSherlock 的应用程序。操作栏的背景是在运行时创建的可绘制对象,因此我们可以更改颜色。

我想添加抽屉布局。在我的测试中,有时背景颜色会变为接近白色。如果我将文本设置为#FFF,它看起来比背景更白。

如果我让菜单启动一个活动,我可以让它重现,然后我回击。它似乎也发生在其他时间 - 可能与设备进入睡眠状态有关。

如果操作栏变成白色,我打开抽屉,它会重新绘制为正确的背景颜色。我在 ADT 中设置了断点,并且似乎在我想要的时候调用了这些方法,所以我不知道是什么触发了颜色变化。

这是 DrawerLayout 的问题,是 ABS 还没有准备好使用 DrawerLayout,还是我需要做一些额外的事情,比如使某些视图无效以使颜色始终正确显示?

编辑:我认为这解决了它。我会继续测试。

0 投票
8 回答
36826 浏览

android - ClassCastException android.widget.FrameLayout$LayoutParams 到 android.support.v4.widget.DrawerLayout$LayoutParams

我正在为 Android 开发导航抽屉。根据我的要求,我是在导航抽屉中显示项目的网格视图和列表视图。我在布局 xml 文件中创建了一个线性布局,并将两个小部件(网格视图和列表视图)放置在线性布局中。

当我运行该文件时,出现以下错误:

java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.navigationdrawer3/com.example.navigationdrawer3.MainActivity}:java.lang.ClassCastException:android.widget.FrameLayout$LayoutParams 无法转换为 android.support.v4。小部件.DrawerLayout$LayoutParams

下面是我的 java、logcat 和 NavigationDrawer 布局文件:

MainActivity.java

activity_main.xml

日志猫

第 86 行的代码行:

第 265 行的代码行:

我试图以多种方式纠正此运行时错误,但未能纠正。任何人都可以为我的问题提出一个答案。

0 投票
1 回答
2339 浏览

android - 在同一个 Activity 中使用 Drawer 布局和 Scroll View

我正在尝试使用无法放入屏幕的 TextView 显示一大块文本。我试过用 ScrollView 围绕这个视图,发现单独使用时它可以工作。当我尝试添加 DrawerLayout 时,可滚动操作不再有效(但 DrawerLayout 有效)。我猜这是因为 DrawerLayouts 要求使用 FrameLayout。下面是我正在使用的 xml 代码。大部分代码遵循谷歌的抽屉布局教程http://developer.android.com/training/implementing-navigation/nav-drawer.html

任何提示或建议将不胜感激。