1

私は RelativeLayout を持っていて、それに ImageButton と TextField を持っています。

クリック リスナーをこの RelativeLayout に設定すると、テキストに触れると正常に動作しますが、ボタンはそれをトリガーしません。

オンクリック リスナーを ImageButton にも追加すると、機能します。本当にこれを行う必要がありますか? または、何か不足していますか?特にアプリでこの状況がたくさんある場合は、両方を行う必要があるのはもったいないようです。

前もって感謝します

m_view.findViewById(R.id.menu_relativeLayout_home).setOnClickListener(this);
m_view.findViewById(R.id.menu_imageButton_home).setOnClickListener(this);

   @Override
   public void onClick(View p_view)
   {
      switch (p_view.getId()) 
      {
         case R.id.....:
         {
            ...
            break;
         }
         case R.id....:
         {
            ...
            break;
         }
         case R.id.menu_imageButton_home:
         case R.id.menu_relativeLayout_home:
         {
            GoHome();
            break;
         }
      }
   }
4

3 に答える 3

1

すべての子に設定android:duplicateParentState="true"すると、クリックがすべての子に伝播されます。

于 2013-06-19T15:28:29.517 に答える
1

はい、両方に onClickListener を追加する必要があります。その場合、項目に登録済みのリスナーが他にどのようにあるでしょうか。

于 2013-06-19T15:07:48.543 に答える
0

これに追加android:duplicateParentStateするだけtrueで問題が解決し、clickListner を親のみに設定します。

于 2014-11-09T06:45:06.863 に答える