android 家园碎片高于其他碎片

lbsnaicq  于 2023-01-15  发布在  Android
关注(0)|答案(3)|浏览(139)

当我在我创建的片段之间切换时,本地片段没有被删除,它在其他片段上写入。
请我有一个问题.我正在使用底部导航和导航控制器.一旦我切换片段,家庭片段保持显示在这休息之下

`
class FeedActivity : AppCompatActivity() {

    private lateinit var bottomNavigationView: BottomNavigationView

 //loadFragment(HomeFragment())
        bottomNavigationView = findViewById(R.id.bottom_navigation) as BottomNavigationView
        bottomNavigationView.setOnItemSelectedListener {
            when (it.itemId) {
                R.id.nav_home -> {
                    loadFragment(HomeFragment())
                    true
                }
                R.id.nav_search -> {
                    loadFragment(SearchFragment())
                    true
                }

                R.id.nav_add -> {
                    loadFragment(AddFragment())
                    true
                }
                R.id.nav_notifications -> {
                    loadFragment(NotificationsFragment())
                    true
                }
                R.id.nav_profile -> {
                    loadFragment(ProfileFragment())
                    true
                }
                else -> throw IllegalStateException("Someone forgot to add enough fragment cases to 'when' clause!")
            }
        }

        }
    private  fun loadFragment(fragment: Fragment){
        val transaction = supportFragmentManager.beginTransaction()
        transaction.replace(R.id.cercevekapsayici,fragment)
        transaction.commit()
    }`

`<RelativeLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".view.FeedActivity">

    <FrameLayout
        android:id="@+id/cercevekapsayici"
        android:layout_above="@id/bottom_appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/bottom_appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottom_navigation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?android:attr/windowBackground"
            app:itemIconTint="@color/cardview_dark_background"
            app:labelVisibilityMode="unlabeled"
            app:menu="@menu/bottom_navigation" />

    </com.google.android.material.appbar.AppBarLayout>

[[一个电子一个电子一个电子一个电子一个电子一个电子一个电子一个电子一个电子一个电子一个电子一个电子)](一个电子一个电子二个电子)'
当我切换到其他片段时,我希望recyclerview消失。

wydwbb8l

wydwbb8l1#

您可以使您的FramLayout高度与父级匹配:

<FrameLayout
       android:id="@+id/cercevekapsayici"
       android:layout_above="@id/bottom_appbar"
       android:layout_width="match_parent"
       android:layout_height="match_parent" />
disbfnqx

disbfnqx2#

loadFragment函数替换了Fragment附加到R.id.cercevekapsayici上的任何东西,R.id.cercevekapsayici是一个包含了你的片段的FrameLayout,但是RecyclerView是你主布局的一部分,所以不管你附加到R.id.cercevekapsayici上什么东西,它都会在那里。
如果您希望它被替换,请将其放入Fragment并添加到FrameLayout-然后在您切换到不同的片段时将其删除。

ozxc1zmp

ozxc1zmp3#

也许你需要给其他片段给予背景信息

相关问题