Android Fragments 我如何改变当前片段中的片段?

fae0ux8s  于 2022-12-23  发布在  Android
关注(0)|答案(2)|浏览(186)

我正在开发一个移动的应用程序使用Java在android工作室。我是新的这个环境。我有3个菜单项底部导航栏(主页,添加文章,个人资料)。

<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/home"
        android:icon="@drawable/ic_baseline_home_24"
        android:title="Home" />
    <item
        android:id="@+id/article"
        android:icon="@drawable/ic_baseline_post_add_24"
        android:title="Article" />
    <item
        android:id="@+id/profile"
        android:icon="@drawable/ic_baseline_person_24"
        android:title="Profile" />
</menu>

在档案片段中我有两个按钮(更改密码,更新档案信息),当我点击更改密码按钮时,我想将当前片段更改为changePasswordFragment,但导航栏必须显示在底部,我该如何计算呢?

c86crjj0

c86crjj01#

您必须使用片段事务在UI中显示一个片段并删除另一个片段,如下面的代码所示。

profileFragment = new ProfileFragment();
changePassFragement= new ChangePassFragment();
changePassBtn.setonClickListener(e->{
getSupportFragmentManager().beginTransaction().replace(R.id.profileLayout,changePassFragment).commit()
});

并且在replace()方法中替换回useprofileFragment而不是changePassFragment和所需的布局。

kxe2p93d

kxe2p93d2#

你可以使用片段事务管理器来添加新的片段。

changePassBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();   
transaction.replace(R.id.profile, new ChangePassFragment());
transaction.commit();
}
});

同样,您可以使用replace方法使用相同的代码返回配置文件片段。

相关问题