我编写了以下代码,在同一行(行)上获得5个菜单项,但单行最多需要3个菜单项。
其余项目设置在“更多”按钮中。
那么如何在单行中获得5项?
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
try
{
menu.add(0, 0, 0, "Logout").setIcon(R.drawable.logout);
menu.add(0, 1, 1, "Refresh").setIcon(R.drawable.refresh);
menu.add(0, 1, 2, "Settings").setIcon(R.drawable.settings);
menu.add(0, 1, 3, "Singup").setIcon(R.drawable.signup);
menu.add(0, 1, 4, "Add").setIcon(R.drawable.add);
}
catch (Exception e)
{
e.printStackTrace();
}
return super.onCreateOptionsMenu(menu);
}
答案 0 :(得分:-1)
最后我得到了多个项目的菜单。
制作以下menu_example.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lylMenu"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:orientation="vertical"
android:visibility="invisible" >
<TextView
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#ffffff" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:gravity="bottom|center"
android:orientation="horizontal" >
<Button
android:id="@+id/mnubtnExit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dp"
android:layout_weight="1.3"
android:background="@drawable/button_selector"
android:drawableTop="@drawable/icon_exit"
android:text="Exit"
android:textColor="#FFFFFF"
android:textSize="15sp"
android:textStyle="bold" />
<Button
android:id="@+id/mnubtnRefresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:layout_weight="1"
android:background="@drawable/button_selector"
android:drawableTop="@drawable/icon_refresh"
android:text="Refresh"
android:textColor="#FFFFFF"
android:textSize="15sp"
android:textStyle="bold" />
<Button
android:id="@+id/mnubtnExport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dp"
android:layout_weight="1"
android:background="@drawable/button_selector"
android:drawableTop="@drawable/icon_export"
android:text="Export"
android:textColor="#FFFFFF"
android:textSize="15sp"
android:textStyle="bold" />
<Button
android:id="@+id/mnubtnDelete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dp"
android:layout_weight="0.9"
android:background="@drawable/button_selector"
android:drawableTop="@drawable/icon_delete"
android:text="Delete All"
android:textColor="#FFFFFF"
android:textSize="15sp"
android:textStyle="bold" />
<Button
android:id="@+id/mnubtnSettings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="1dp"
android:layout_weight="0.9"
android:background="@drawable/button_selector"
android:drawableTop="@drawable/icon_settings"
android:text="Settings"
android:textColor="#FFFFFF"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#ffffff" />
</LinearLayout>
按照以下说明在所需布局文件底部应用菜单:
您必须根据菜单高度给出底部边距。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/effect_message_background"
android:orientation="vertical" >
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ScrollView>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-60dip"
android:gravity="bottom" >
<include layout="@layout/menu_example" />
</RelativeLayout>
</LinearLayout>
应用以下代码进行上下滑动。
LinearLayout lyl_Menu = = (LinearLayout)findViewById(R.id.lylMenu);
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
try
{
if(keyCode == KeyEvent.KEYCODE_MENU)
{
//System.out.println("MENU PRESSED...........");
if(lyl_Menu.isShown())
{
goneFooter();
}
else
{
visibleFooter();
}
}
else if(keyCode == KeyEvent.KEYCODE_BACK)
{
if(lyl_Menu.isShown())
{
goneFooter();
return true;
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return super.onKeyDown(keyCode, event);
}
public void visibleFooter()
{
if(!lyl_Menu.isShown())
{
lyl_Menu.setVisibility(View.VISIBLE);
lyl_Menu.startAnimation(AnimationUtils.loadAnimation(UserData.this, R.anim.slide_up_in));
}
}
public void goneFooter()
{
if(lyl_Menu.isShown())
{
lyl_Menu.startAnimation(AnimationUtils.loadAnimation(UserData.this, R.anim.slide_up_out));
lyl_Menu.setVisibility(View.INVISIBLE);
}
}
在res文件夹中制作动画文件夹,例如RES /阿尼姆 将以下内容放在anim文件夹中的动画xml文件中:
1)slide_up_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromYDelta="100%p"
android:toYDelta="0%p" />
</set>
2)slide_up_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromYDelta="0%p"
android:toYDelta="100%p" />
</set>
多数民众赞成。 享受单排多个菜单项。 :)