我开始学习Android知识,我想知道如何组织/重新排列工具栏上菜单中的不同项目(例如:如何将其推到工具栏的中央,如何确定我希望在不同的物品之间有多少空间,等等。)
现在,我有一个如下所示的menu_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/miCompose"
android:icon="@drawable/ic_calendar"
app:showAsAction="always"
android:title="Calendar" >
</item>
<item
android:id="@+id/miProfile"
android:icon="@drawable/ic_dining"
app:showAsAction="always"
android:title="Dining">
</item>
</menu>
这样,我的项目就会以这种方式显示在我的工具栏上:
http://zupimages.net/viewer.php?id=19/13/pr82.png
但是我想找到一种方法使它们位于工具栏的中心。 有人可以帮我吗?我现在似乎找不到任何东西...
答案 0 :(得分:0)
因此,忘记所有关于menu.xml的内容,并开始考虑自定义菜单项
您也可以通过编程方式添加各个菜单项,例如:
popup.getMenu().add(groupID,itemID,itemOrder,itemTitle);
'itemOrder'从字面上看是一个整数,您要为其添加项目的订单
对于每个菜单项,您需要:
ID
标题
图标(可选)
所以。创建一个具有这些特征的类,如下所示:
public class MyMenu {
public static Integer Count(){
return 4;
}
public static String title(int pick){
String[] strings = new String[]{
"title1",
"title2",
"title3",
"title4"
};
return strings[pick];
}
public static int iconDrawable(int pick){
int[] drawables = new int[]{
R.drawable.icon1,
R.drawable.icon2,
R.drawable.icon3,
R.drawable.icon4
};
return drawables[pick];
}
}
现在使用此类来创建菜单,如下所示:
PopupMenu popup = new PopupMenu(getActivity(), yourTargetView);
int count = MyMenu.Count();
for (int i = 0; i < count; i++) {
popup.getMenu().add(1,
i,
i,
MyMenu.title(i))
.setIcon(MyMenu.iconDrawable(i))
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_WITH_TEXT);
}
popup.setOnMenuItemClickListener(
new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
// So Something on Click
return true;
}
});
popup.show();
现在,您可以使用此类课程做任何您想做的事情。您还可以将简单数组列表用于标题或ID或订单
ArrayList<String> titles = new new ArrayList<>();
for (int i = 0; i < count; i++) {
titles.add(_whatever);
}
答案 1 :(得分:0)
工具栏仅是视图。如果遇到一些麻烦,您可以使用自定义视图与没有菜单的孩子一起工作。
或以自定义布局作为子项添加