如何在片段中添加,向上导航?
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()
}
}
你好朋友我在我的项目中添加了一个向上导航并且它反映在所有的片段中,问题是我只希望它反映在一些片段中。
我想准确地创建图像中红色圆圈中指示的那些,但在一个片段中
主要活动
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()
}
}