主片段部分可见,具有当前片段android studio的混合视图

主片段部分可见,具有当前片段android studio的混合视图,android,android-fragments,onclicklistener,android-navigationview,Android,Android Fragments,Onclicklistener,Android Navigationview,在我的android应用程序中有一个导航抽屉,它的默认加载片段是homefragment,因为主屏幕是homefragment。Home fragment上有imageview,它监听单击并在每个imageview上打开不同的片段,问题是片段在全屏上显示,而我希望它们显示在navigationview的工具栏下,当我按下后退按钮时,应用程序退出到主登录屏幕。请有人建议我处理这个问题。 这是homefragment的代码,它是导航抽屉的默认代码: public class HomeFragmen

在我的android应用程序中有一个导航抽屉,它的默认加载片段是homefragment,因为主屏幕是homefragment。Home fragment上有imageview,它监听单击并在每个imageview上打开不同的片段,问题是片段在全屏上显示,而我希望它们显示在navigationview的工具栏下,当我按下后退按钮时,应用程序退出到主登录屏幕。请有人建议我处理这个问题。 这是homefragment的代码,它是导航抽屉的默认代码:

 public class HomeFragment extends Fragment {
ImageView im1,im2,im3,im4,im5,im6,im7,im8,im9,im10,im11,im12,im13,im14;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (container != null) {
        container.removeAllViews();
    }
    View view = inflater.inflate(R.layout.activity_home,
            container, false);
   im1 = (ImageView) view.findViewById(R.id.imageView37);
    im2 = (ImageView) view.findViewById(R.id.imageView38);
    im3 = (ImageView) view.findViewById(R.id.imageView39);
    im4 = (ImageView) view.findViewById(R.id.imageView40);
    im5 = (ImageView) view.findViewById(R.id.imageView41);
    im6 = (ImageView) view.findViewById(R.id.imageView42);
    im7 = (ImageView) view.findViewById(R.id.imageView43);
    im8 = (ImageView) view.findViewById(R.id.imageView44);
    im9 = (ImageView) view.findViewById(R.id.imageView45);
    im10 = (ImageView) view.findViewById(R.id.imageView46);
    im11 = (ImageView) view.findViewById(R.id.imageView48);
    im12 = (ImageView) view.findViewById(R.id.imageView50);
    im13 = (ImageView) view.findViewById(R.id.imageView51);
    im14 = (ImageView) view.findViewById(R.id.imageView52);

    im1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            DashboardFragment fragment = new DashboardFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            MyLawyerFragment fragment = new MyLawyerFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im3.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            AddHearingFragment fragment = new AddHearingFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im4.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            MyCasesFragment fragment = new MyCasesFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im5.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            MyPaymentsFragment fragment = new MyPaymentsFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im6.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            MyClientsFragment fragment = new MyClientsFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im7.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            ArchivedCasesFragment fragment = new ArchivedCasesFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im8.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            SubscriptionFragment fragment = new SubscriptionFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im9.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            SettingsFragment fragment = new SettingsFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im10.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            WebsiteFragment fragment = new WebsiteFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im11.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            KeyJudgementsFragment fragment = new KeyJudgementsFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im12.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            DailyJudgementsFragment fragment = new DailyJudgementsFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im13.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            JudgementLibraryFragment fragment = new JudgementLibraryFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    im14.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            LogoutFragment fragment = new LogoutFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.drawer_layout, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    return view;
}}
下面是homefragment:dashboard上一个ImageView的代码-->

这是另一个片段,单击其中一个图像视图时也被称为:

public class MyLawyerFragment extends Fragment {

ImageButton im1;
LinearLayout l1;
ChangeFragListener listener;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    listener = (ChangeFragListener)getActivity();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (container != null) {
        container.removeAllViews();
    }
    View v1 = inflater.inflate(R.layout.activity_mylawyer,
            container, false);
    im1 = (ImageButton) v1.findViewById(R.id.imageButton);
    l1 = (LinearLayout) v1.findViewById(R.id.linearLayout4);
    im1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            change("lawyer");

            AddLawyer fragment = new AddLawyer();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.add(R.id.drawer_layout, fragment);
        //    fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
    l1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            LawyerDetailsFragment fragment = new LawyerDetailsFragment();
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.add(R.id.drawer_layout, fragment);
           // fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });

    return v1;
}

private void change(String lawyer) {
}}
我添加了这段代码,现在两个屏幕没有合并,但是工具栏仍然缺失


在您的
MyLawyer
片段中替换此

fragmentTransaction.add(R.id.drawer_layout, fragment);


为了帮助其他可能遇到与我相同问题的人,我找到了解决问题的方法,因为我知道我对fragmentTransaction使用了错误的id。replace(),因为它应该和我在导航抽屉中使用的一样,那就是R.id.frame

只需检查
活动
片段
生命周期。@Piyus我检查了,但我感到困惑,因为所有这些对我来说都是新的,特别是片段,当我单击homefragments按钮时,它会在前台显示该片段,而以前的homefragments则显示为背景或有时它只是不显示过路费添加您的代码too@VivekMishra请看我的最新问题now@VivekMishra它会给出错误,因为as不会解析我添加这段代码的方法,所以现在如果(container!=null){container.removeAllViews();}但屏幕上仍然缺少toollbar,而当我从导航抽屉中访问相同的片段时,整个屏幕上都有工具栏
fragmentTransaction.add(R.id.drawer_layout, fragment);
fragmentTransaction.replace(R.id.drawer_layout, fragment);