如何在另一个片段中添加底部导航栏

时间:2020-09-29 07:27:50

标签: android

我已经在项目中添加了一个底部导航栏,其中包含3个片段(Home_fragment,Wallet_fragment,Account_fragment)。我在Account_fragment中添加了登录按钮。现在,我希望每当我单击登录按钮login_fragment(afterlogin_fragment)并使用底部导航栏打开时。

我已在显示问题的视频上附加了一个链接。链接-https://cloud.degoo.com/share/o41Axz4FYFHBx7

这是代码---

mainActivity ---

        BottomNavigationView bottomNavigationView = findViewById(R.id.main_nav);
        bottomNavigationView.setOnNavigationItemSelectedListener(navListener);
        getSupportFragmentManager().beginTransaction().replace(R.id.main_frame_layout, new HomeFragment()).commit();

    }



    BottomNavigationView.OnNavigationItemSelectedListener navListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {

            Fragment selecrFlag = null;
            switch (menuItem.getItemId())
            {
                case R.id.nav_home:
                    selecrFlag = new HomeFragment();
                    break;

                case R.id.nav_wallet:
                    selecrFlag = new WalletFragment();
                    break;

                case R.id.nav_Account:
                    selecrFlag = new AccountFragment();
                    break;


            }
            getSupportFragmentManager().beginTransaction().replace(R.id.main_frame_layout, selecrFlag).commit();
            return true;


        }


    };

};

Account_fragment ---

   @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.fragment_account, container, false);
        EmailID = v.findViewById(R.id.editTextEmail);
        Passwd = v.findViewById(R.id.editPassword);
        SignUpBt = v.findViewById(R.id.signbutton);
        LoginBt = v.findViewById(R.id.loginbutton);

        LoginBt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(AccountFragment.this.getContext(),AfterLogin.class));
            }
        });

登录后片段-

package com.thechamp.earnbyads;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;

public class AfterLogin extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_after_login);


    }
}

1 个答案:

答案 0 :(得分:0)

看起来您很困惑。移到另一个屏幕的方式不是“片段”。这是活动。 有很多方法可以解决这个问题。

  1. 您可以将AfterLogin更改为Fragment。
  2. 或将AfterLogin活动实现为您在具有这三个片段的当前活动中实现的方式。