Android缩放按钮无法点击

时间:2017-01-18 10:53:48

标签: c# android android-layout

我创建了一个片段,其中包含一个包含几个按钮的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外部的Button上单击缩放菜单,但是当我尝试单击其中的按钮时,它不会工作。如果我不在开始时缩放视图,则可以正常工作。

@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");
        }
    });
}

具体来说,如果我评论这两行,它会起作用(我在我的片段类中设置onclick,而不是在XML中):

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

我想这与命中区域有关,但我无法找到确切的结果。我是Android开发人员的新手,所以我还没有找到解决方法。谢谢!

1 个答案:

答案 0 :(得分:0)

你可以用它。

git mergetool