【问题标题】:android expandable menu (hiding/unhiding menu)android可扩展菜单(隐藏/取消隐藏菜单)
【发布时间】:2013-02-06 09:49:26
【问题描述】:

在我的应用程序布局中,我有一个设置按钮....当我们按下它时,它会显示一些子菜单....当我们再次按下它时,它将隐藏所有子菜单....看起来像可扩展的列表视图,但不完全一样......只是隐藏/取消隐藏菜单以便为其他视图腾出一些空间......我该怎么做?

这是我想要做的截图

hide menu

unhide menu

here is我的xml文件:

<RelativeLayout
android:layout_height="fill_parent"
android:layout_width="fill_parent">
    <EditText
        android:id="@+id/Editsearch"
        android:hint="Enter keyword..."
        android:layout_alignParentLeft="true"
        android:singleLine="true"
        android:layout_width="fill_parent"
        android:layout_toLeftOf="@+id/search"
        android:layout_height="wrap_content" />
    <ImageButton
        android:id="@+id/search"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/button_search"
        android:layout_alignParentRight="true" />
    <Spinner
        android:id="@+id/province"
        android:layout_width="135dp"
        android:layout_height="45dp"
        android:layout_below="@+id/Editsearch"
        android:layout_toLeftOf="@+id/setting"
        android:textSize="12dip"
        android:textStyle="bold"
        android:background="@android:drawable/btn_default"
    />
    <ImageButton
        android:id="@+id/setting"
        android:layout_width="wrap_content"
        android:layout_height="45dip"
        android:layout_below="@+id/Editsearch"
        android:src="@drawable/button_setting"
        android:layout_alignParentRight="true" />
    <Spinner
        android:id="@+id/Category"
        android:layout_width="135dp"
        android:layout_height="45dp"
        android:text="Category"
        android:layout_below="@+id/Editsearch"
        android:layout_alignParentLeft="true"
        android:background="@android:drawable/btn_default" />
        <!-- Job Category title-->
    <TextView
        android:id="@+id/Title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:typeface="serif"
        android:textSize="13dip"
        android:layout_below="@+id/province"
        android:layout_gravity="center"

        android:text="Total Job : 1982"
        android:textStyle="bold" />
    <ListView
        android:id="@+id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/Title"
        android:listSelector="@drawable/list_selector" />
</RelativeLayout>

提前致谢

【问题讨论】:

    标签: android button submenu expandable


    【解决方案1】:

    这很简单。 只需将这 3 个按钮放在一个布局中,然后在单击隐藏/取消隐藏按钮时将该布局的可见性设置为消失/可见。

    编辑:

    这就像将您喜欢隐藏/取消隐藏的微调器放在布局中并为其提供 ID。

    <ImageButton
            android:id="@+id/setting"
            android:layout_width="wrap_content"
            android:layout_height="45dip"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/Editsearch"
            android:src="@drawable/button_setting" />
    
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        **android:id="@+id/submenu_layout"**
        android:layout_below="@+id/Editsearch"
        >
        <Spinner
            android:id="@+id/category1"
            android:layout_width="135dp"
            android:layout_height="45dp"
            android:layout_alignParentLeft="true"
            android:background="@android:drawable/btn_default"
            android:text="Category" />
        <Spinner
            android:id="@+id/category2"
            android:layout_width="135dp"
            android:layout_height="45dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@id/category1"
            android:background="@android:drawable/btn_default"
            android:text="Category" />
        <Spinner
            android:id="@+id/category3"
            android:layout_width="135dp"
            android:layout_height="45dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/category2"
            android:background="@android:drawable/btn_default"
            android:text="Category" />
        </RelativeLayout>
    

    然后使用这个 id 在你的代码中引用这个布局。

    RelativeLayout submenuLayout = (RelativeLayout) findViewById(R.id.submenu_layout);
    

    编辑 2:

    在设置 imageButton 的 OnClick 之后:

     if(submenuLayout .getVisibility() == View.VISIBLE)
        submenuLayout .setVisibility(View.GONE);
        else
            submenuLayout .setVisibility(View.VISIBLE);
    

    【讨论】:

    • 感谢您的回答....但是,您能告诉我示例代码吗?我是android编程的新手...:D
    • 谢谢...在看到您的 xml 文件后...给每个新手的建议...一定要遵循编码约定...这将使您在前进的道路上轻松自如..跨度>
    • 嗨 Mr.Sourab Sharma ......还有一个问题......:我这里还有一个小问题......在我使用的 xml 文件中(android:visibility= “gone”)在 submenuLayout 中,然后在我的活动中的 onclick 监听器中,我使用了“submenuLayout.setVisibility(View.VISIBLE);”。当我按下设置按钮时,它会显示隐藏的布局,但是当我再次按下它时,什么也没有发生....我想再次隐藏布局....怎么做....提前谢谢跨度>
    • 我再次编辑了我的答案...请参阅编辑 2 了解您对此问题的解决方案。
    • 嗨,Sourab Sharma 先生,我的应用程序有问题,请查看此LINK,希望您能帮助我......:)
    【解决方案2】:

    使用此代码

    使其在按钮单击时可见

    themeUrlRow.setVisibility(View.VISIBLE);
    

    让它不可见

    themeUrlRow.setVisibility(View.GONE);
    

    在 xml 中将按钮放入布局中并使其不可见,并在 clicklistener 中添加上述代码。

    xml 代码

                <LinearLayout
                   android:id="@+id/themeUrlRow"
                android:layout_width="fill_parent"
                android:gravity="center"
                android:visibility="gone" > />
    
                <Button
                    android:id="@+id/register"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="Register" />
    
                <Button
                    android:id="@+id/register"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="Register" />
            </LinearLayout>
    

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 1970-01-01
      • 2017-02-28
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多