Android 导航抽屉和 windowActionBar Overlay = true

2024-04-03

我正在尝试在我的应用程序中实现新的 Android 导航抽屉。我创建了一个 BaseActivity.java 来处理抽屉设置和侦听器,并且我有两个扩展此基类的子活动。在第二个活动中,我计划使用不同的操作栏样式,并使用以下属性:

<item name="android:windowActionBarOverlay">true</item>
<item name="android:background">@android:color/transparent</item>

使操作栏透明,并使内容更丰富,因为我的布局中有一个图片标题。

我已经实现了这一点,但现在的问题是,由于内容正在扩展以利用使用 ActionBar 作为覆盖层的额外空间,导航抽屉本身也在扩展并且与 ActionBar 重叠,从而创建了一个非常糟糕的效果寻找布局:

我想做的是实际内容(将填充片段的框架布局)来占用额外的空间,但导航抽屉仍然位于操作栏下方,类似于 Play Music 应用程序:

我能做些什么来实现这一目标有什么想法吗?

EDIT因此,根据艾哈迈德的协助,我设置了marginTop仅在 ListView 上。这是布局:

<!-- The navigation drawer -->
<ListView android:id="@+id/left_drawer"
          android:layout_marginTop="?android:attr/actionBarSize"
<!-- This was added after seeing the crazy effect, but does nothing -->
          android:layout_marginBottom="0dp"
          android:layout_marginLeft="0dp"
          android:layout_marginRight="0dp"
          android:layout_width="240dp"
          android:layout_height="fill_parent"
          android:layout_gravity="start"
          android:choiceMode="singleChoice"
          android:background="?attr/listviewBackground"
          />

现在,它对于顶部效果很好,但由于某种原因,视图底部也有一个边距,这对我来说根本没有任何意义。这是一个屏幕截图 http://db.tt/9uKyRSRM.

不知道是什么原因造成的:(


现在,它对于顶部效果很好,但由于某种原因,视图底部也有一个边距,这对我来说根本没有任何意义。这是一个屏幕截图。

如果您将 ListView 重力设置为开始|底部它解决了你的问题。底部不添加额外边距。看起来 DrawerLayout 默认重力是 start|center

<ListView
    android:id="@+id/left_drawer"
    android:layout_marginTop="?android:attr/actionBarSize"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start|bottom"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 导航抽屉和 windowActionBar Overlay = true 的相关文章

随机推荐