我有问题。我使用片段作为列表视图,在点击一个项目后,它应该用这个特定片段(在本例中为事件)的片段替换这个片段。它工作(片段显示)但它是透明的,我可以在后台看到列表(即使它不可点击)。我怎样才能摆脱这种奇怪的背景?使用类似方法替换的另一个片段工作正常,只需使用" onItemClick"它做到了。
这是我的代码:
lvEvents.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Event currEvent = (Event) parent.getAdapter().getItem(position);
Log.e(TAG, currEvent.getName().toString());
replaceFragment(0, currEvent);
}
});
和方法:
private void replaceFragment(int code, Event event) {
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
Bundle b = new Bundle();
b.putParcelable("event",event);
if(code==0){
EventViewFragment fragment = new EventViewFragment();
fragment.setArguments(b);
ft.replace(R.id.fragmentFrame, fragment, EventViewFragment.TAG);
}
ft.commit();
}
任何想法可能在这里出错?
提前谢谢!
此致
的Grzegorz
答案 0 :(得分:1)
尝试这个..即使我遇到了这个问题......我经历了一些文章......我们写的是我们可以在主要布局中使用白色背景......在框架布局中在我的情况下,或线性布局。 使用 android:background =“@ color / white”
<LinearLayout
android:id="@+id/timetable_fragment"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="@color/white"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/card_list"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
你可以使用这个方法然后..它替换当前片段...使用替换关键字..如果你想使用addtobackStack关键字来堆叠片段,它就会替换你。 / p>
public void replaceFragment(Fragment fragment) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.container, fragment)
.addToBackStack(null)
.commit();
}