2013-02-06 190 views
1

在我的应用程序布局中,我有一个设置按钮....当我们按下它时,它会显示一些子菜单....当我们再次按下它时,它会隐藏所有的子菜单....看起来像可扩展列表视图,但不完全是这样的......只是隐藏/取消隐藏菜单,以获得一些空间另一个意见....我怎么能做到这一点?android可扩展菜单(隐藏/取消隐藏菜单)

这里要说的是正是我想要做的

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> 

预先感谢

回答

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); 
+0

感谢答案.... 但是,你能告诉我的例子代码? 我是一个新手在android编程...:D – Arsyah

+0

为我提供您的xml文件 –

+0

我已经上传了我的xml文件....请检查先生@Sourab Sharma – Arsyah

0

使用此代码

,使其按钮可见点击

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> 
+0

好的......谢谢@ Saran ...我会试试.... – Arsyah

+0

好的...谢谢Saran 它解决了我的问题....;) – Arsyah