相关疑难解决方法(0)

Android Jetpack导航,使用Youtube或Instagram的BottomNavigationView,如正确的后退导航(片段后退堆栈)?

Android Jetpack导航,BottomNavigationView在后退按钮上点击自动片段后栈?

我想要的是,在用户一个接一个地选择多个标签后,用户点击后退按钮应用必须重定向到他/她打开的最后一页.

通过在ArrayList中保存当前选定的项目,我使用Android ViewPager实现了相同的功能.Android Jetpack导航发布后是否有任何自动后退堆栈?我想用导航图实现它

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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=".main.MainActivity">

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

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        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/navigation" />

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

navigation.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/ic_home"
        android:title="@string/title_home" />

    <item
        android:id="@+id/navigation_people"
        android:icon="@drawable/ic_group"
        android:title="@string/title_people" />

    <item
        android:id="@+id/navigation_organization"
        android:icon="@drawable/ic_organization"
        android:title="@string/title_organization" />

    <item
        android:id="@+id/navigation_business"
        android:icon="@drawable/ic_business"
        android:title="@string/title_business" />

    <item
        android:id="@+id/navigation_tasks"
        android:icon="@drawable/ic_dashboard"
        android:title="@string/title_tasks" />

</menu>
Run Code Online (Sandbox Code Playgroud)

还补充道

bottomNavigation.setupWithNavController(Navigation.findNavController(this, R.id.my_nav_host_fragment))
Run Code Online (Sandbox Code Playgroud)

我得到了一个答案Levi …

android android-navigation bottomnavigationview android-architecture-components android-architecture-navigation

50
推荐指数
7
解决办法
2万
查看次数

何时使用FragmentTransaction的attach和detach方法

我刚刚通过的文件去attach()detach()方法FragmentTransaction:

attach():在先前已从UI分离后重新附加片段detach(Fragment).这会导致其视图层次结构被重新创建,附加到UI并显示.

嗯,这是什么意思?

  1. 更具体地说,我看到了一个例子:

    mMapFragment = new MapFragment();
    ft.beginTransaction(mMapFragment)
      .attach()
      .add(R.id.container, mMapFragment)
      .commit();
    
    Run Code Online (Sandbox Code Playgroud)

    我删除了attach()并再次尝试:我没有发现任何差异.什么是attach在这个例子吗?与此相比有何不同:

    ft.beginTransaction()
      .add(R.id.container, mMapFragment)
      .commit();
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果上面的例子是不够好,以示区别.我只是想知道做的时候,我们需要调用attach()detach()明确?如果你可以解释添加/删除/替换方面的差异会更好.

android fragment fragmenttransaction

31
推荐指数
1
解决办法
3万
查看次数

阻止BottomNavigationView 重新创建片段

每次导航时,带有导航组件的底部导航视图都会重新创建片段。我想要一个 Singletop,我该怎么做?

我跟着这个教程:https : //proandroiddev.com/android-navigation-arch-component-a-curious-investigation-3e56e24126e1

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        setupNavigation()
    }

    private fun setupNavigation() {
        val navController = findNavController(R.id.mainNavigationFragment)
        setupActionBarWithNavController(navController)
        bottomNavigationView.setupWithNavController(navController)
    }

    override fun onSupportNavigateUp() =
            findNavController(R.id.mainNavigationFragment).navigateUp()
}
Run Code Online (Sandbox Code Playgroud)

android kotlin bottomnavigationview

5
推荐指数
0
解决办法
1275
查看次数