2

私のアプリにはフラグメント A とフラグメント B があり、フラグメント A には以下GridViewの a などが含まれています。ListView

             fragment A
-------------------------------------
|                       |            |
|                       |            |
|                       |            |
|        GridView A     | ListView A |
|                       |            |
|                       |            |
|                       |            |
|                       |            |
|                       |            |
--------------------------------------

フラグメント B には、次の aListViewと aが含まLinearLayoutれます。

--------------------------------------
|            |                       |
|            |                       |
|            |                       |
|            |                       |
| ListView B |     LinearLayout B    |
|            |                       |
|            |                       |
|            |                       |
|            |                       |
|            |                       |
--------------------------------------

ListViewフラグメント Aの A のアイテムをクリックすると、フラグメント B が起動し、アイテムの詳細情報が表示されます。しかし、フラグメント B で、GridViewA またはA の領域であった画面をタッチすると、 A の onTouch() メソッドまたはA のメソッドListViewに応答します。を使用したのはこれが初めてで、これをしばらく混乱させました。GridViewListViewonClick()Fragment

4

1 に答える 1

2

タッチが最初のフラグメントに漏れているように聞こえます。フラグメント B のルート レイアウトに onTouch リスナーを設定して、レイアウトが表示されているときにタッチが通過しないようにします。

したがって、これらの行に沿ったものについては:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
     View root = inflater.inflate(R.layout.fragmentBlayout, container, false);
    root.setOnTouchListener(new OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
        /** Intercepts touches from going through. */
        return true;
        }
    });

    /** Find the rest of your views... */

   return root;
}
于 2012-09-18T04:41:35.413 に答える