在我的应用程序布局中,我有一个设置按钮。。。。当我们按下它时,它会显示一些子菜单。。。。当我们再次按下它时,它将隐藏所有子菜单。。。。看起来像可扩展的列表视图,但不完全是这样。。。。只是隐藏/取消隐藏菜单,以便为其他视图获得一些空间。。。。我该怎么做?
这是屏幕截图,这正是我想做的
隐藏菜单
取消隐藏菜单
这是我的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>
提前感谢
它非常简单。只需将这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:
之后点击设置图像按钮:
if(submenuLayout .getVisibility() == View.VISIBLE)
submenuLayout .setVisibility(View.GONE);
else
submenuLayout .setVisibility(View.VISIBLE);
使用此代码
要使其在按钮上可见,请单击
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>