我有全屏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>
答案 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。我不确定这是否是最佳方式,但我可以确认它是否有效。我有三个需要淡入/滑动的菜单,它们现在可以很好地工作:)