我想通过将
。我已经可以在中间制作imageview,但问题是:当我在
,但如果我将其设置为
ImageView
放在中间并在操作栏的右侧放置另一个带有一些信息的图标来制作自定义操作栏,就像这样:![](https://istack.dev59.com/bZUvJ.webp)
onCreateOptionMenu()
中填充布局并设置showAsAction="always"
时,右侧的视图会占据整个操作栏的空间,就像这样:![](https://istack.dev59.com/6llu5.webp)
"never"
,则中间的图像将显示,但菜单项将消失。以下是我的代码:private void setActionBar(){
actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
LayoutInflater linflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View view = linflater.inflate(R.layout.actionbar_layout, null);
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(
ActionBar.LayoutParams.WRAP_CONTENT,
ActionBar.LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL;
view.setLayoutParams(lp);
actionBar.setCustomView(view);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.actionbar_right_icon, menu);
MenuItem menuItem = menu.findItem(R.id.user_info);
View rightIcon = menuItem.getActionView();
RelativeLayout rightIconLayout = (RelativeLayout) rightIcon.findViewById(R.id.actionbar_right_icon);
TextView user = (TextView) rightIconLayout.findViewById(R.id.actionbar_user);
TextView id = (TextView) rightIconLayout.findViewById(R.id.actionbar_id);
user.setText("User:test");
id.setText("ID:xxxxx");
return true;
}
菜单/操作栏右侧图标
<menu xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:id="@+id/user_info"
android:actionLayout="@layout/actionbar_right_icon_layout"
android:icon="@drawable/user_icon"
android:showAsAction="always"
/>
</menu>
我该如何解决这个问题?
提前感谢您的帮助。