Android 单击空白区域,然后单击下一个调用

Android 单击空白区域,然后单击下一个调用,android,list,android-fragments,android-listfragment,Android,List,Android Fragments,Android Listfragment,我有3个打开的片段,条件是第一个片段列表项单击>>第二个片段打开,依此类推。但当我点击第一个片段的空白处,它会自动打开第二个片段,点击第二个片段的空白处,它会转到第三个片段 这是我为片段事务维护的类 public static void addABCDHomeFragment(FragmentManager fragManager, String categoryName) { FragmentTransaction ft = fragManager.beginTransaction()

我有3个打开的片段,条件是第一个片段列表项单击>>第二个片段打开,依此类推。但当我点击第一个片段的空白处,它会自动打开第二个片段,点击第二个片段的空白处,它会转到第三个片段

这是我为片段事务维护的类

public static void addABCDHomeFragment(FragmentManager fragManager, String categoryName) {
    FragmentTransaction ft = fragManager.beginTransaction();
    Fragment abcdHomeFragment = fragManager.findFragmentByTag(ABCD_HOME_FRAGMENT);
    if (abcdHomeFragment == null || abcdHomeFragment.isRemoving()) {
        ABCDHomeFragment homeFragment = new ABCDHomeFragment(categoryName);
        ft.add(R.id.frame_layout, homeFragment, ABCD_HOME_FRAGMENT);
        ft.addToBackStack(ABCD_HOME_FRAGMENT);
        ft.commit();
    } else if (abcdHomeFragment != null && abcdHomeFragment.isAdded()) {
        fragManager.popBackStack();
        ABCDHomeFragment homeFragment = new ABCDHomeFragment(categoryName);
        ft.replace(R.id.frame_layout, homeFragment, ABCD_HOME_FRAGMENT);
        ft.addToBackStack(ABCD_HOME_FRAGMENT);
        ft.commit();
    }
}

public static void addProductListFragment(FragmentManager fragmentManager,String categoryId , 
        String parent , int option) {
    FragmentTransaction ftproductlist = fragmentManager.beginTransaction();
    Fragment plistFragment = fragmentManager.findFragmentByTag(PRODUCT_LIST_FRAGMENT);
    ProductListFragment productListFragment = new ProductListFragment(categoryId,parent,option);
    if (plistFragment != null && plistFragment.isAdded() && plistFragment.isVisible()) {
        fragmentManager.popBackStack();
        ftproductlist.add(R.id.frame_layout, productListFragment,PRODUCT_LIST_FRAGMENT);
        ftproductlist.addToBackStack(PRODUCT_LIST_FRAGMENT);
        ftproductlist.commit();
    } else {
        ftproductlist.replace(R.id.frame_layout, productListFragment, PRODUCT_LIST_FRAGMENT);
        ftproductlist.addToBackStack(PRODUCT_LIST_FRAGMENT);
        ftproductlist.commit();
    }
}

public static void removeProductListFragment(FragmentManager fragmentManager) {
    FragmentTransaction ftproductlist = fragmentManager.beginTransaction();
    Fragment productListFragment = fragmentManager.findFragmentByTag(PRODUCT_LIST_FRAGMENT);
    if (productListFragment != null && productListFragment.isAdded()) {
        ftproductlist.remove(productListFragment);
        fragmentManager.popBackStack();
        ftproductlist.commit();
    }
}

public static void addProductDetailFragment(FragmentManager fragManager,String productId,String parent, String productName) {
    FragmentTransaction ftproduct = fragManager.beginTransaction();
    Fragment productDetailFragment = fragManager.findFragmentByTag(PRODUCT_DETAIL_FRAGMENT);
    if (productDetailFragment == null || productDetailFragment.isRemoving()) {
        ProductDetailFragment dtailFragment = new ProductDetailFragment(productId, parent,productName);
        ftproduct.add(R.id.frame_layout, dtailFragment, PRODUCT_DETAIL_FRAGMENT);
        ftproduct.addToBackStack(PRODUCT_DETAIL_FRAGMENT);
        ftproduct.commit();
    } else if (productDetailFragment != null && productDetailFragment.isAdded()) {
        fragManager.popBackStack();
        ProductDetailFragment dtailFragment = new ProductDetailFragment(productId,parent,productName);
        ftproduct.replace(R.id.frame_layout, dtailFragment,PRODUCT_DETAIL_FRAGMENT);
        ftproduct.addToBackStack(PRODUCT_DETAIL_FRAGMENT);
        ftproduct.commit();
    }
}

您应该显示片段1和2的代码,然后单击事件显示您所做的有两种方法可以解决此问题给第一个片段的布局添加背景色,然后尝试使用替换而不是添加片段