- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在设置抽屉导航以遵循 Material 设计规范。我已经检查过 Chris Banes post (在 Material design checklist 中可用)并制作了那里列出的所有实现,例如自定义主题等,以及 this question同样,但它们似乎都不符合我的应用程序结构的要求。
正如您从标题中猜到的那样,我的 DrawerLayout
有两个 FrameLayout
作为子级:一个用于内容,另一个用于抽屉(重要的是要指出,我无法更改此结构,因为我需要保持动态更新 NavigationDrawer 中的内容的能力,并且显然要保持交换 fragment 作为主要内容的能力)。
现在的问题是我不知道将工具栏声明放在 xml 中的什么位置才能实现预期的设计并且不会搞砸,因为 DrawerLayout
需要两个 child .
activity_main.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.myapp.MainActivity"
android:fitsSystemWindows="false"> <!-- Setting this one to true makes the status bar to have a non-transparent shitty background -->
<!--
As the main content view, the view below consumes the entire
space available using match_parent in both dimensions.
-->
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
</FrameLayout>
<com.myapp.widget.ScrimInsetsFrameLayout
android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navdrawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"/>
</android.support.v4.widget.DrawerLayout>
给出这个结果:如您所见,状态栏似乎完全不存在(也许它是正确的?),因为内容是全屏绘制的。当应用程序启动时,我可以看到工具栏被绘制(呈现时没有状态栏填充,因此弄乱了系统图标)然后突然被 map 内容覆盖。我目前运行的是 Android 4.4.4,但它在 Android 5.0 的模拟器上是一样的。
在另一个 stackoverflow 问题中,建议将根 LinearLayout
与工具栏和 DrawerLayout
放在一起,但会导致奇怪的结果,例如正确呈现工具栏但下面是状态栏(带有纯色非透明背景)。我也尝试过使用 FrameLayout
作为 root,但结果很差。
关于如何处理这个问题有什么建议吗?
最佳答案
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout">
<LinearLayout
android:id="@+id/someLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
<FrameLayout android:id="@+id/container"></FrameLayout>
</LinearLayout>
<com.myapp.widget.ScrimInsetsFrameLayout
android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navdrawer_width"/>
</android.support.v4.widget.DrawerLayout>
现在您只需要更改R.id.container 中的 fragment ,因为容器在someLayout LinearLayout
中的ToolBar 下我省略了一些布局参数,但这不是重点。
关于android - 状态栏下的 Material design 抽屉 : how to achieve it using a DrawerLayout with two FrameLayouts as children?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27471342/
我正在尝试使用 RelativeLayout 扩充 FrameLayout。然后我像这样扩展一个 FrameLayout: public class Keyboard extends FrameLay
在我的应用程序中,我有一个布局,它有一个 RelativeLayout 我想在运行时以编程方式设置边距。但是当我这样做时,它给了我 ClassCastException 说 FrameLayout 不
我在横向模式下的 FrameLayout 中打开 android Camera,然后屏幕看起来像- 但是当我在 FrameLayout 中的 ImageView 中打开相同的图像时,它看起来像 - 请
我在画廊中使用了 FrameLayout 作为画廊项目。 FrameLayout 中有 2 个 RelativeLayouts,每个都有一些 TextView 和一个 ImageView。图库外有一个
我目前正在使用 xml 为 Activity 创建布局,内容 (FrameLayout) 应该填满整个屏幕。不幸的是,事实并非如此。只有当我将边距更改为以下时,它才有效: 左:-17dp 右:-19d
我有一个 View (假设它是 MyFramLayout)扩展了 FrameLayout,我无法在按下键时让这个 FrameLayout 获得焦点(我在电视平台上工作)。 布局是这样的:
我正在尝试设置一个平板电脑布局,左侧是一个列表,右侧是一个详细信息 Pane 。单击列表项时,详细信息 Pane 将填充一系列比左侧列表更长的卡片。我希望详细信息 Pane 和列表(回收站 View
我用按钮创建了一个布局,这个按钮有逻辑,我不想集成它。 所以我认为: 当我有按钮时,我需要添加一个 char $,所以我创建了一个 frameLayout 并在此处添加了一个 TextView,我这样
我正在使用 FrameLayouts 在图像上重叠图像,但在这种特殊情况下我无法理解我的内部 FrameLayout 没有显示在另一幅图像的前面。这是理论: 这是实际的事情: 这是我的 XML:
在 FrameLayout 中,我动态添加了一个 WebView,用于在旋转屏幕时保存内容,但事实并非如此,情况是在 FrameLayout 下面我想放置一个固定的页脚。下一个代码放置页脚,但 Fra
我在加载 fragment Activity 时意外收到空指针异常错误。我指的是 FrameLayout 将用户定向到另一个 Activity (在单击按钮时)。 11-10 07:31:58.773
我想测试使用 fragment 管理器动态替换 fragment 。在主布局中,在父衬里布局下,我有 3 个布局,一个子线性布局和 2 个子框架布局。这个想法是在第一个子线性布局中使用一个按钮来交换第
我正在开发 Android 即时聊天应用程序。在聊天 Activity 中,我正在使用 FrameLayout。以下是 xml 文件: 我已将框架的可见性设置为
这是有效的: a) main.xml 中带有两个 ImageView 的 FrameLayout b) 在背景上旋转动画,而前景部分保持不变 因为我需要对背景图像做更多的工作,
我有以下问题:我有很长的 ListView,但是当我向上滚动时会触发 onRefresh,而不是先滚动回顶部。我该如何解决这个问题? 我将以下 fragment 插入到 FrameLay
我有一个 FrameLayout,上面显示了一个 LinearLayout我的 Intent 是这个 LinearLayout 总是占据屏幕的 33%……但我做不到。我尝试使用“dp”,但当然,结果因
是否有一种布局,其中的项目可以像 Android 的 FrameLayout 一样分层放置? 我已经在谷歌上搜索了一段时间,但找不到类似的东西。 最佳答案 我希望这个答案很清楚并且可以帮助您。您需要的
我是第一次使用 NavigationBar 小部件,我无法将 FrameLayout 设置为不在 NavigationBar 后面。我已经尝试了一切:在 RelativeLayout 中设置(Navi
我有以下 View 层次结构: 我尝试设置 ImageView 的下边距,在布局编辑器上它似乎工作正常,但是当我运行代码时,我设置的下边距被丢弃了。
我有这样的布局: 相对布局 框架布局 fragment (谷歌地图图层) 复选框 ...其他按钮和东西 现在我想在选中 Checkbox 时捕获 FrameLayout 上的触摸事件。我用 dispa
我是一名优秀的程序员,十分优秀!