ListView和onItemClick创建透明片段

时间:2017-09-11 04:18:44

标签: android listview android-fragments

我有问题。我使用片段作为列表视图,在点击一个项目后,它应该用这个特定片段(在本例中为事件)的片段替换这个片段。它工作(片段显示)但它是透明的,我可以在后台看到列表(即使它不可点击)。我怎样才能摆脱这种奇怪的背景?使用类似方法替换的另一个片段工作正常,只需使用" 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

1 个答案:

答案 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();
}