0

我的 android 应用程序按以下方式组织:

  • 包含两个片段(第一个选项卡中的 FragmentA 和第二个选项卡中的 FragmentB)的 FragmentTabHost。
  • FragmentA 有一个 ListViewFragment 并扩展了以下视图:

    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/titles"
       android:name="br.sachetto.ondepublicar.ListViewFragment"
       android:layout_width="match_parent"
       android:layout_height="match_parent" 
       android:focusable="false"
       android:focusableInTouchMode="false"
       android:clickable="false" />
    
  • 片段 B 的观点非常相似。

  • 以下代码用于加载 FragmentA 中的视图:

    private static View view;
    
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
                             Bundle savedInstanceState) {           
    
            if (view != null) {         
                    ViewGroup parent = (ViewGroup) view.getParent();        
                    if (parent != null)             
                            parent.removeView(view);    
                    }     
                    else {  
                            view = inflater.inflate(R.layout.list_fragment, 
                                                    container, false);  
                    }
             }  
        return view;         
    }
    

一切正常,直到我从第一个选项卡(FragmentA)更改为第二个选项卡(FragmentB)。在此更改之后,我的列表视图停止响应点击事件。但是,如果我向下和向上滚动列表,它会再次开始响应。如果这个问题有人可以帮助我吗?

4

1 回答 1

0

如果我没记错的话,您将片段膨胀到以前(在 xml 中)定义为静态/编译时片段的片段中。

这种做法是不允许的,并且会导致两个片段相互重叠。我建议您膨胀所有将通过代码动态移动或更改的片段。

于 2013-02-27T22:16:25.063 回答