如何在片段中添加,向上导航?

How to add , Up navigation in a Fragment?

你好朋友我在我的项目中添加了一个向上导航并且它反映在所有的片段中,问题是我只希望它反映在一些片段中。

我想准确地创建图像中红色圆圈中指示的那些,但在一个片段中

主要活动

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val navController = this.findNavController(R.id.nav_host_fragment)
        setupActionBarWithNavController(this,navController) 
    }

    override fun onSupportNavigateUp(): Boolean {
        val navController = this.findNavController(R.id.nav_host_fragment)
        return navController.navigateUp()
    }
}

我想添加向上导航的片段之一

class LogInFragment : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?

    ): View? {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_log_in, container, false)
    }
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        val buttonLogIn = view.findViewById<ImageView>(R.id.imageViewButtonLogIn)
        buttonLogIn.setOnClickListener {
            findNavController().navigate(R.id.action_logInFragment_to_lugaresFragment)
        }
    }
}

在您的 nav_graph

中试试这个
 <activity
    android:id="@+id/mainActivity"
    android:name="com.example.MainActivity"
    android:label="Main Activity"
    tools:layout="@layout/activity_main">
    <action
        android:id="@+id/action_mainActivity_to_loginFragment"
        app:destination="@id/loginFragment" />
</fragment>

 <fragment
    android:id="@+id/loginFragment"
    android:name="com.example.LogInFragment"
    android:label="Login In"
    tools:layout="@layout/fragment_log_in" />

我找到了隐藏向上导航的方法,这样我们就可以决定它出现的位置。

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val hideUpButton = AppBarConfiguration(
            setOf(R.id.logInFragment)
        )

        val navController = this.findNavController(R.id.nav_host_fragment)
        setupActionBarWithNavController(this, navController,hideUpButton)

    }

    override fun onSupportNavigateUp(): Boolean {
        val navController = this.findNavController(R.id.nav_host_fragment)
        return navController.navigateUp()
    }
}