0

私のAndroidアプリは次のように編成されています:

  • 2 つのフラグメントを含む FragmentTabHost (最初のタブの FragmentA と 2 番目のタブの FragmentB)。
  • 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) から 2 番目のタブ (FragmentB) に変更するまで、すべて正常に動作します。この変更後、リスト ビューがクリック イベントに応答しなくなりました。しかし、リストを上下にスクロールすると、再び応答し始めます。この問題が発生した場合、誰でも私を助けることができますか?

4

1 に答える 1

0

私が間違っていなければ、フラグメントを、以前に (xml で) 静的/コンパイル時のフラグメントとして定義されていたフラグメントに膨らませます。

この方法は許可されておらず、2 つのフラグメントが重なり合う可能性があります。コードを介して動的に移動または変更されるすべてのフラグメントを膨らませることをお勧めします。

于 2013-02-27T22:16:25.063 に答える