找不到任何 java 使用底部导航的单个 activity 使用 androidx 导航架构的示例

Can't find any java examples of using the androidx navigation architecture for single activity using bottom navigation

我找不到任何使用 java 的示例,google 给出的所有代码实验室似乎都在 kotlin 中,理想情况下我不想学习该语言。

有没有使用底部导航栏链接的 1 activity、2/3 片段的简单示例,我可以浏览?

我查看了 google 提供的所有文档,但无法理解其中的任何意义。

我只知道我应该使用

 NavHostFragment.findNavController(Fragment)
    Navigation.findNavController(Activity, @IdRes int viewId)
    Navigation.findNavController(View)

而且在 java 我应该使用

 Navigation.createNavigateOnClickListener()

我希望我不会离得太远:

public class MainActivity extends AppCompatActivity {

NavController navController;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    BottomNavigationView navView = findViewById(R.id.nav_view);

    navController = Navigation.findNavController(this, R.id.nav_host_fragment);

    NavigationUI.setupWithNavController(navView,navController);
}

}

谢谢。

最终找到了答案,对于任何面临类似新手问题的人来说:

/res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <fragment
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:defaultNavHost="true"
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:navGraph="@navigation/nav_graph"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@id/nav_view"/>

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/nav_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="0dp"
        android:layout_marginEnd="0dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/bottom_nav_menu" />

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java 在 onCreate

  BottomNavigationView navView = findViewById(R.id.nav_view);
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        NavigationUI.setupWithNavController(navView,navController);

在/res/navigation/nav_graph下。xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph"
    app:startDestination="@id/mapFragment">
    <fragment
        android:id="@+id/mapFragment"
        android:name="com.company.pinpoint.MapFragment"
        android:label="fragment_map"
        tools:layout="@layout/fragment_map">
        <action
            android:id="@+id/action_mapFragment_to_newsFeedFragment"
            app:destination="@id/newsFeedFragment" />
        <!--app:enterAnim="@anim/slide_in_right"-->
        <!--app:exitAnim="@anim/slide_out_left"-->
        <!--app:popEnterAnim="@anim/slide_in_left"-->
        <!--app:popExitAnim="@anim/slide_out_right" />-->
    </fragment>
    <fragment
        android:id="@+id/newsFeedFragment"
        android:name="com.company.pinpoint.NewsFeedFragment"
        android:label="fragment_news_feed"
        tools:layout="@layout/fragment_news_feed" />
</navigation>