gpt4 book ai didi

Android 在单个 Activity 中有一个抽屉导航和工具栏

转载 作者:行者123 更新时间:2023-11-30 01:40:52 27 4
gpt4 key购买 nike

我正在开发一个需要 ActionBar 选项卡和抽屉导航的应用程序。然而,这两者似乎在布局上相互冲突。对于抽屉导航,我需要有一个 DrawerLayout 作为根布局,然后是抽屉和内容的另外两个 View 。这真的很容易,而且效果很好。这样做的代码是:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/navdrawer"
tools:context="io.github.ncca_fbla.fabric.MainActivity">

<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>

<LinearLayout
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start">
</LinearLayout>

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

我什至不用运行或做任何其他工作就可以告诉它工作:

问题是我需要 TabLayoutViewPager 和自定义 ToolBar 所有这些都需要 CoordinatorLayout 作为根元素才能正常工作。无论如何我可以获得正常工作所需的三个 View ,同时将 DrawerLayout 保持为根?我曾尝试在没有 CoordinatorLayout 作为 Root View 的情况下添加它们,并且工具栏无法正确显示。基本上,我试图将上面的代码与类似的东西结合起来:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/coord"
tools:context="io.github.ncca_fbla.fabric.MainActivity">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways" />

<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabGravity="fill"/>
</android.support.design.widget.AppBarLayout>

<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />


</android.support.design.widget.CoordinatorLayout>

最佳答案

您可以通过将协调器布局存储在名为 coordinator_tabs 的单独文件中并将其包含在 DrawerLayout 中来干净地完成此操作。您的文件将如下所示:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/navdrawer"
tools:context="io.github.ncca_fbla.fabric.MainActivity">

<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<LinearLayout
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start">
</LinearLayout>

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

如果您使用的是 Android Studio,您可以通过右键单击 java 文件夹并选择 New->Activity->Navigation Drawer Activity 来查看此示例

关于Android 在单个 Activity 中有一个抽屉导航和工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34521517/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com