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