水平菜单

时间:2012-10-11 10:49:09

标签: android android-layout android-custom-view

我想在android中创建水平菜单。 Android支持可纵向扩展的可扩展列表视图,但我希望水平扩展菜单。请参考图片

enter image description here

说明

在图像Menu1中,menu2,menu3是主菜单,s1,s2,s3是菜单1的子项。如果我点击主菜单,它的子项必须展开。

2 个答案:

答案 0 :(得分:3)

您可以将子菜单放在LinearLayout中,并在onClickListener中添加View.VISIBLE / View.GONE游戏

答案 1 :(得分:1)

这是一个简单的例子。 你应该自己完成它。

in xml。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/attachments_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">
    <Button
        android:id="@+id/btn_menu1"
        android:layout_width="0dp"
        android:layout_height="50dp" 
        android:text="Menu1"
        android:layout_weight="1"
        />
    <LinearLayout
        android:id="@+id/subview_menu1"
        android:layout_width="0dp"
        android:layout_height="50dp" 
        android:layout_weight="2"
        android:visibility="gone"
        >
        <Button
            android:layout_width="0dp"
            android:layout_height="fill_parent" 
            android:text="S1"
            android:layout_weight="1"
            />
        <Button
            android:layout_width="0dp"
            android:layout_height="fill_parent" 
            android:text="S2"
            android:layout_weight="1"
            />
        <Button
            android:layout_width="0dp"
            android:layout_height="fill_parent" 
            android:text="S3"
            android:layout_weight="1"
            />
    </LinearLayout>
    <Button
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:text="Menu2" 
        android:layout_weight="1"
        />
    <Button
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:text="Menu3" 
        android:layout_weight="1"
        />
    </LinearLayout>

在btn_menu1 OnClickListener

public void onClick(View v) {
    if (subview_menu1.isShown()) {
        subview_menu1.setVisibility(View.GONE);
    }
    else{
        subview_menu1.setVisibility(View.VISIBLE);
    }
}