为了账号安全,请及时绑定邮箱和手机立即绑定

如何在片段内加载新活动而不丢失底部导航栏

如何在片段内加载新活动而不丢失底部导航栏

智慧大石 2019-04-25 10:15:46
正如标题所说,当我点击图片图块时,我想要加载新活动,但是我希望保持导航栏可见。目前,使用下面的代码,活动开始但导航栏消失。我想帮助编写代码,以便活动开始但导航栏仍然存在。public class HomeFragment extends Fragment {private ImageView imageCbt;private ImageView imageDistorted;@Nullable@Overridepublic android. view.View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {     return inflater.inflate(R.layout.fragment_home, container, false);}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {     // TODO Auto-generated method stub     super.onActivityCreated(savedInstanceState);     // get the button view     imageCbt = getView().findViewById(R.id.whatIsCbt);     imageDistorted = getView().findViewById(R.id.distortedThinking);     // set a onclick listener for when the button gets clicked     imageCbt.setOnClickListener(new View.OnClickListener() {         // Start new list activity         public void onClick(View v) {             Intent mainIntent = new Intent(getActivity(),                     IntroActivity2.class);             startActivity(mainIntent);         }     });     imageDistorted.setOnClickListener(new View.OnClickListener() {         // Start new list activity         public void onClick(View v) {             Intent mainIntent = new Intent(getActivity(),                     TwelveTypesDistortedThinkingActivity.class);             startActivity(mainIntent);         }     });}
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

要更改当前片段,可以将单击侦听器中的代码替换为此片段(使用活动组内的其他片段替换片段):


Fragment newFragment = new ExampleFragment();

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();


// Replace whatever is in the fragment_container view with this fragment,

// and add the transaction to the back stack if needed

transaction.replace(R.id.fragment_container, newFragment);

transaction.addToBackStack(null);


// Commit the transaction

transaction.commit();

然后,您需要将您的活动转换为Fragment(可能需要进行一些重构)并更改onClickListener方法中的当前片段。

PS:当您使用导航栏时,片段是应用程序架构中的最佳实践。


查看完整回答
反对 回复 2019-05-15
?
三国纷争

TA贡献1804条经验 获得超7个赞

像这样替换OnNavigationItemSelectedListener上的片段 FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.frame_container, yourFragment); transaction.addToBackStack(null); transaction.commit();

完整教程Android使用底部导航


查看完整回答
反对 回复 2019-05-15
  • 2 回答
  • 0 关注
  • 457 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信