我想创建一个自定义菜单,并将该菜单放在 RelativeLayout 中心的特定布局中,我尝试这样做,但没有成功:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Home" >
<LinearLayout
android:id="@+id/grid1"
android:layout_width="750dp"
android:layout_height="400dp"
android:background="@android:color/darker_gray"
android:layout_centerInParent="true"
android:orientation="vertical" >
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/Main"
android:title="@string/main"/>
<item android:id="@+id/Sub"
android:title="@string/sub"/>
</menu>
</LinearLayout>
</RelativeLayout>
在 java :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//RelativeLayout layout = (RelativeLayout) findViewById(R.layout.activity_home);
getMenuInflater().inflate(R.menu.home, menu);
return true;
}
P.s我也试着把它放在一个单独的文件中,然后添加它,但当这样做时,它只显示在操作栏中。
3条答案
按热度按时间mklgxw1f1#
不可能直接在布局中使用菜单。请在res/menu文件夹中创建菜单布局。然后在任何按钮单击事件中使用弹出菜单侦听器来扩展它。下面的链接中有一个很好的示例。您还可以使用PopMenuWindow****class将自定义布局用作popUpMenu。
http://www.javatpoint.com/android-popup-menu-example
f5emj3cl2#
尝试以下步骤:
1)在菜单文件夹(/res/menu/menu.xml)中创建菜单. xml
2)在活动类中创建函数showMenu(视图)
3)设置菜单的定位点,您要在此处显示弹出菜单
lo8azlld3#
将
android:showAsAction="never"
放在菜单项中以显示菜单中的项目。把菜单布局放进菜单文件夹(res的子文件夹)