2013-02-06 187 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