2017-09-11 10 views
1

問題があります。私はリストビューのためにフラグメントを使用し、アイテムをクリックした後、このフラグメントをこの特定のフラグメント(この場合はイベント)で置き換える必要があります。それは動作します(フラグメントが表示されます)が透明ですが、(クリック可能ではないにしても)バックグラウンドでリストを見ることができます。この奇妙な背景をどうやって取り除くことができますか?同様のメソッドで置き換えられる他のフラグメントはうまく動作し、単に "onItemClick"を使用するだけです。ここでListViewと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(); 
    } 

任意のアイデアここで間違っているかもしれないもの?

ありがとうございます!

よろしく、

グジェゴシ

答えて

2

これを試してみては...でも、私はこの問題に直面していました...私はいくつかの記事を行ってきました...それは我々がメインレイアウトで白い背景を使用することができることを書かれました。.. 。フレームレイアウトまたは私の場合線形レイアウトインチ 使用アンドロイド:背景=「白@カラー/」

<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> 

あなたは...それが現在のフラグメントを置き換え... を交換keyword..andそのあなたの上を使用して、このメソッドを使用することができますすることができますaddtobackStackキーワードを使用してフラグメントをスタックする場合。

public void replaceFragment(Fragment fragment) { 
    getSupportFragmentManager() 
      .beginTransaction() 
      .replace(R.id.container, fragment) 
      .addToBackStack(null) 
      .commit(); 
} 
+0

私は理解しますが、それだけではありませんか?なぜ私の他のフラグメントが正しく表示され、listViewのこれらのフラグメントだけが問題を抱えていますか? –

+0

あなたはコンテナを使用している、addtobackStackコマンド –

+0

を置き換えることができますフラグメントを置き換えるには...私の答えで編集したメソッドを確認してください。 –

関連する問題