Java 我的适配器在布局中,即使它被片段替换

Java 我的适配器在布局中,即使它被片段替换,java,android,Java,Android,我的适配器和更换fragmet有问题 我的问题是。。如何替换片段并删除上一个listview中的项 我尝试使用fragment_transaction.beginTransaction().add();fragment_transaction.commit();然后移除 我还尝试了fragment_transaction.begintransaction().replace(); fragment_transaction.commit() @覆盖 创建视图上的公共视图(布局、充气机、最终视图组容

我的适配器和更换fragmet有问题

我的问题是。。如何替换片段并删除上一个listview中的项

我尝试使用fragment_transaction.beginTransaction().add();fragment_transaction.commit();然后移除

我还尝试了fragment_transaction.begintransaction().replace(); fragment_transaction.commit()

@覆盖
创建视图上的公共视图(布局、充气机、最终视图组容器、捆绑包保存状态){
View wew=getLayoutInflater().flate(R.layout.frag2,null);
GridView listView=wew.findViewById(R.id.listView);
listView.setAdapter(新适配器());
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
如果(i==0){
教员片段教员片段=新教员片段();
FragmentTransaction FragmentTransaction=getChildFragmentManager().beginTransaction().replace(R.id.fragm2,faculty\u fragment);
fragmentTransaction.commit();
}
}
});
返回wew;
}
@凌驾
已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
}
公共类适配器扩展了BaseAdapter{
@凌驾
public int getCount(){
返回图像长度;
}
@凌驾
公共对象getItem(int i){
返回null;
}
@凌驾
公共长getItemId(int i){
返回0;
}
@凌驾
公共视图getView(int i、视图视图、视图组视图组){
View view1=getLayoutFlater().inflate(R.layout.adapter,null);
mTextMessage=view1.findviewbyd(R.id.text1);
imageView=view1.findViewById(R.id.image1);
mTextMessage.setText(名称[i]);
imageView.setImageResource(图像[i]);
返回视图1;
}
}


这是结果

不知道理解是否正确,但您正在尝试用片段B替换片段a?如果是,请查看以下代码:

FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().remove(oldfragment).commit();
fragmentManager.beginTransaction().add(R.id.yourcontainer, newfragment).addToBackStack(null).commit();
在这里,您基本上首先删除旧片段并提交,然后将新片段添加到容器中

如果这不是答案,那么可能是因为您的布局必须有背景色/图像或其他东西。我曾经有过两个项目重叠的经历,或者说是两个片段相互重叠的经历,结果是为片段布局添加了背景

FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().remove(oldfragment).commit();
fragmentManager.beginTransaction().add(R.id.yourcontainer, newfragment).addToBackStack(null).commit();