5

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

在此处输入图像描述

描述:

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

4

2 回答 2

3

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

于 2012-10-15T07:19:28.683 回答
1

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

在 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);
    }
}
于 2012-10-16T07:00:39.153 回答