2016-05-04 8 views
0

ナビゲーション・ドロワー内のフラグメントがすでにオープンされている場合、そのフラグメントを開く方法を防止する方法。たとえば、私はNav DrawerにSettingsフラグメントを持っています。最初にそのフラグメントをクリックすると、そのフラグメントをクリックします。これをクリックすると、同じフラグメントを2回開くことはできません。ナビゲーション・ドロワーのフラグメントがすでに開かれている場合、そのフラグメントを開くことを防止する方法

+0

ここでコードはありますか? –

答えて

0

現在開いているリスト内のフラグメントの位置を維持することができます。たとえば、mSelectedPositionという変数を維持します。これはonCreate()の-1に初期化されます。そして、DrawerItemClickListenerであなたのonItemClick()のコードはおそらく、あなたがonDrawerClosed()コールバックで新しいフラグメントを変更する必要があります

if (position == mSelectedPosition) { 
    closeDrawer(); 
    return; 
} 

mSelectedPosition = position; 
// Continue your work here. 
0

ようなものになることができます。 currentFragmentPositionのようなメンバ変数を更新します。

public void onDrawerClosed(View view) 
{ 
    super.onDrawerClosed(view); 

    if(clickedPosition != currentFragmentPosition) 
    { 
     // change Fragment 
    } 
    currentFragmentPosition = clickedPosition; 
} 
関連する問題