当前位置: 首页 > 知识库问答 >
问题:

当我使用BottomNavigationView时,如何只显示片段区域?

傅花蜂
2023-03-14

我目前正在开发一个应用程序使用Android Studio与静态编程语言。

此应用程序有一个BottomNavigationView和4个片段。

我的问题是如何使用BottomNavigationView仅显示片段区域?

代码如下:

fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
              tools:context=".fragments.HowToUseFragment" android:orientation="vertical">
    <LinearLayout
            android:id="@+id/viewBag"
            android:visibility="visible"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@android:color/holo_blue_bright">
    </LinearLayout>
    <LinearLayout
            android:id="@+id/viewReceipt"
            android:visibility="visible"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@android:color/holo_blue_dark">
    </LinearLayout>
</LinearLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
        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"
        tools:context=".MainActivity">

    <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottom_navigation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="?android:attr/windowBackground"
            app:menu="@menu/bottom_navigation_menu"/>
    <fragment
            android:id="@+id/nav_host_fragment"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:name="androidx.navigation.fragment.NavHostFragment"
            app:navGraph="@navigation/navigation_graph"/>
</FrameLayout>

Android Studio: 3.3.2

共有1个答案

怀刚毅
2023-03-14

尝试LinearLayout而不是FrameLayout

<LinearLayout
    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:orientation="vertical"
    tools:context=".MainActivity">

    <fragment
        android:id="@+id/nav_host_fragment"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:navGraph="@navigation/navigation_graph"/>

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="?android:attr/windowBackground"
        app:menu="@menu/bottom_navigation_menu"/>
</LinearLayout>

或添加android:layout_marginBottom="56dp"到您的

 类似资料:
  • 在我的应用程序中,我有一个ViewPager,里面有很多可滑动的标签,里面有碎片。是否有像这样的方法,每次片段出现在屏幕上时都会调用它?等是在创建片段之后调用的,而不是在片段出现在屏幕上时调用的,因此它们对我不起作用。我的问题可以用哪种方法?

  • 在我的应用程序的主要活动中,我有BottomNavigationView和四个项目/选项卡。每个选项卡都有自己的片段。我使用Jetpack导航组件在这些片段之间导航。 当我使用导航到另一个片段时,以前的片段视图正在被销毁。我的一个片段包含地图视图,这使得片段视图的创建操作繁重。当用户更改BottomNavigationView选项卡时,在使用地图视图导航到片段时,旧的Android手机上有明显的延

  • 我有3个碎片。 每个片段都有自己的AsyncTask。 当我“启动”FragmentActivity时,将显示片段1,并执行其asynctask。但是它最近的片段(片段2,中间的片段)也启动它的AsyncTask。 我想知道是否只有当用户看到片段时才可以启动异步任务。我想如果是可能的,因为我想显示一个进度对话框(获取数据...)。现在我从数据库中得到的数据很少,但如果我有很多,我想显示一个进度对话

  • 问题内容: 我正在使用带有底部导航视图的简单应用程序。我有3个带有文本的片段,我想在Botton Navigation中选择一个项目时启动它们,但是我不知道在MainActivity.java中写什么。所有片段都具有.xml布局和.java。我搜索了一些代码,写了代码,搜索了视频,但没有成功。 我正在学习Fragments和UI Dynamic,因此我在Android Studio中使用“底部导航

  • 我需要执行一个方法,当片段是可见的(对用户)。此方法用于在片段内显示工具提示。 我有一个活动在布局的底部有viewpager和menubar来导航一个片段。而且我还禁用了ViewPager的滑动。 当片段可见或活动时,我需要调用showTooltip()。我试过使用on resume和setUserVisibleHint(),但仍然不起作用。当viewpager移动到可见页时不显示工具提示。

  • 这应该很容易...但是我没有运气搜索文档! 我该如何获得时刻。js返回: ,我可以写: <代码>力矩()。减去(15,'分钟')。fromNow() 我应该使用哪个命令来获得15分钟?