2017-01-18 3 views
0

をスケール:私のフラグメントのクラスでAndroidは、私はいくつかのボタンを含むでframeLayoutを含む断片作成ボタンクリックできない

<FrameLayout android:id="@+id/menu_view" 
    android:layout_width="490dp" 
    android:layout_height="490dp" 
    android:layout_gravity="bottom|end" 
    android:layout_marginRight="-200dp" 
    android:layout_marginEnd="-200dp" 
    android:layout_marginBottom="-200dp" 
    android:background="@drawable/menu_view_bg"> 

    <Button android:id="@+id/menu_btn1" 
     android:layout_width="76dp" 
     android:layout_height="76dp" 
     android:paddingTop="15dp" 
     android:paddingBottom="10dp" 
     android:layout_marginLeft="185dp" 
     android:layout_marginStart="185dp" 
     android:layout_marginTop="107dp" 
     android:background="@drawable/menu_btn_bg" 
     android:drawableTop="@drawable/menu_item0" 
     android:textColor="@color/colorPrimaryDark" 
     android:textAllCaps="false" 
     android:text="@string/menu1"/> 

    <Button android:id="@+id/menu_btn2" 
     android:layout_width="76dp" 
     android:layout_height="76dp" 
     android:paddingTop="15dp" 
     android:paddingBottom="10dp" 
     android:layout_marginLeft="200dp" 
     android:layout_marginStart="200dp" 
     android:layout_marginTop="15dp" 
     android:background="@drawable/menu_btn_bg" 
     android:drawableTop="@drawable/menu_item1" 
     android:textColor="@color/colorPrimaryDark" 
     android:textAllCaps="false" 
     android:text="@string/menu2"/> 

     ... 
    </FrameLayout> 

を、私はでframeLayoutの外でボタンをクリックして上のメニューをスケーリングが、私はしようとすると、その中のボタンをクリックすると、動作しません。開始時にビューを拡大しないと、それは機能します。

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    FrameLayout menuView = (FrameLayout) getView().findViewById(R.id.menu_view); 
    menuView.setScaleX(0.1f); 
    menuView.setScaleY(0.1f); 

    Button btn = (Button) getView().findViewById(R.id.menu_main_btn); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      toggleMenu(); 
     } 
    }); 

    Button hotelBtn = (Button) getView().findViewById(R.id.menu_btn2); 
    hotelBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Log.d("fef", "onClick: dodkoz"); 
     } 
    }); 
} 

私はこれらの2行をコメントする場合具体的には、それが動作します(私は私のフラグメントのクラスではなく、XMLでのonclickを設定):

menuView.setScaleX(0.1f); 
menuView.setScaleY(0.1f); 

私は、これはヒットとは何かを持っていると思います私は正確に何かを見つけることができません。私はAndroidデベロッパーにとってかなり新しいので、回避策は出ていません。ありがとう!

答えて

0

これを使用できます。

@Override 
public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) 
{ 
     View view=inflater.inflate(R.layout.yourframelayout, container, false); 

     Button btn = (Button) view.findViewById(R.id.menu_main_btn); 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      // toggleMenu(); 
      } 
     }); 

     Button hotelBtn = (Button) view.findViewById(R.id.menu_btn2); 
     hotelBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.d("fef", "onClick: dodkoz"); 
      } 
     }); 
} 
+0

ここでこれを使用しますか?アクティビティまたはフラグメントクラスでは? – Skoua

+0

あなたはフラグメントクラスに入れておくべきです。あなたのものを削除してください。 –

+0

いいえ、私はそれをしましたが、何も変わっていませんでした。 onCreateView()でmenuViewを0.1fにスケールし、後で1fにスケールすると、menuView内のボタンはまだクリックを受け取りません。 – Skoua

関連する問題