如何在TranslateAnimation之后删除Click location?

时间:2011-06-21 08:36:23

标签: android animation

我有全屏RelativeLayout,其中包含以下内容: 1. FrameLayout,全屏,显示内容。 2. LinearLayout,充当控制菜单,保持在内容#1的顶部,必须能够根据请求滑动或淡入/淡出(我实际上有两个。一个在屏幕的顶部,另一个在底部)。

我正确显示视图,按下菜单按钮时菜单控制器滑动/淡入淡出。但是当我滑动并淡出视图时,点击操作仍然存在。如何删除此操作?

我试图调用menuLayout.setVisibility(View.GONE);但行动仍然存在。

我阅读了TranslateAnimation的一些问题,但我无法让它工作。 谁能告诉我如何解决这个问题?示例将不胜感激。

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#99000000"
    android:layout_alignParentLeft="true"
    android:gravity="center_vertical"
    android:id="@+id/contentFrame"
    >
    <ViewSwitcher 
            android:layout_width="match_parent" 
            android:layout_height="match_parent"
            android:id="@+id/viewSwitch">
        <include layout="@layout/main_car" />
    </ViewSwitcher>
</FrameLayout>
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="43dp"
    android:background="@drawable/um_top_bar"
    android:layout_alignParentTop="true"
    android:id="@+id/topMenu"
    android:gravity="top"
    >
    <ImageView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:src="@drawable/um_btn_home"
        android:id="@+id/homeMainBtn"  />
    <ImageView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:src="@drawable/exp_menu_btn"
        android:id="@+id/menuMainBtn"  />
</LinearLayout>
<LinearLayout 
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#FF000000"
    android:layout_alignParentBottom="true"
    android:id="@+id/bottomMenu"
    android:gravity="top"
    >
    <include layout="@layout/menu_bottom" />
</LinearLayout>

1 个答案:

答案 0 :(得分:1)

好的,我终于让它上班了。对于任何可能面临同样问题的人来说,这就是我所做的。

我放置空图层并将所有菜单内容分成单独的XML文件。

以下是代码:

    /** Resetting bottom menu content */
    private void resetBottomMenu(boolean isOpen){

    bottomMenu.removeAllViews();
    bottomMenu.addView(loadBottomMenu(isOpen));
            // Control event handler goes here.
    }

    /** Load bottom menu content from XML */
    private LinearLayout loadBottomMenu(boolean isOpen){

    LinearLayout result = null;
    if(isOpen){
        result = (LinearLayout)View.inflate(this.getApplicationContext(), R.layout.menu_bottom_open, null);
    }else{
        result = (LinearLayout)View.inflate(this.getApplicationContext(), R.layout.menu_bottom, null);
    }
    return result;
    }

每当我想要滑入菜单时,我都会调用resetBottomMenu然后在bottomMenu上启动动画。如果我要关闭菜单,我会启动动画然后重置BottottMenu。

删除该布局中的子视图非常重要,因为这样会删除点击操作。

P.S。我不确定这是否是最佳方式,但我可以确认它是否有效。我有三个需要淡入/滑动的菜单,它们现在可以很好地工作:)