android中的自定义子菜单

时间:2013-11-04 19:33:36

标签: android android-layout

我已按照以下帖子创建了自定义标签栏:

How to create a Tab-like UI in Android?

当单击中心选项卡(实际上是按钮)时,我需要在子菜单上显示一个设置。我需要弹出子菜单,如图所示(子菜单应该在我的主要布局上方):

enter image description here

我相信这可以通过在自定义标签栏上方放置一个附加布局来实现,其中一组按钮可以一个接一个地放置。但我不确定需要使用哪种布局以及如何在图纸中获得相同的样式。请帮我找一个解决方案。

1 个答案:

答案 0 :(得分:1)

您只需在要打开它的按钮上方添加另一个布局,然后将其可见性设置为已经消失,直到您想要在其中设置动画。

常规的LinearLayout可以正常工作,然后添加4个按钮也可以正常工作,那么你需要确保这些按钮使用与内置的android菜单按钮相同的样式(或者自己设置样式)但是查看一些内置样式here

示例:

您的活动

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

  //all your other activity layout stuff goes here

  <!--add your new menu-->
  <LinearLayout 
  android:id="@+id/my_menu_layout"
  android:visibility="gone"
  ... />

    <Button 
    android:id="@+id/menu_btn_1"
    style="@android:style/Widget.Holo.ActionButton.TextButton" //as example of built-in style
    ... />

    //more buttons

  </LinearLayout>

然后在您的活动类中,将onClickListener分配给按钮,该按钮将切换菜单并为视图设置动画

//animation xml you make
Animation inFromBottom = AnimationUtils.loadAnimation(this, R.anim.layout_in_bottom); 
mMenuLayout.startAnimation(inFromBottom);       
mMenuLayout.setVisibility(View.VISIBLE);

现在您的视图将会生成动画,您可以将onClick侦听器添加到按钮