Android 具有自定义布局和自定义菜单项的ActionBar
我想在中间放一个自定义的操作栏,代码为“IVIEVIEW ”,在Action Bar右侧有一个图标,上面有一些信息: 我可以在中间进行想象,但问题是Android 具有自定义布局和自定义菜单项的ActionBar,android,android-actionbar,Android,Android Actionbar,我想在中间放一个自定义的操作栏,代码为“IVIEVIEW ”,在Action Bar右侧有一个图标,上面有一些信息: 我可以在中间进行想象,但问题是 当我在onCreateOptionMenu()中充气布局并设置showaAction=“always”时,右侧的视图会像这样占据操作栏的所有空间 但如果我将其设置为“从不”,中间的图像将显示,但菜单项将消失 这是我的密码: private void setActionBar(){ actionBar = getActionB
- 当我在
中充气布局并设置onCreateOptionMenu()
时,右侧的视图会像这样占据操作栏的所有空间showaAction=“always”
“从不”
,中间的图像将显示,但菜单项将消失
这是我的密码:
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>
我怎样才能解决这个问题
提前感谢您ActionBar提供了customView支持。不要使用
onCreateOptions菜单()
和R.menu.actionbar\u right\u图标
。而是创建一个布局,该布局包含您绘制的所有视图
你可以像下面这样做
LayoutParams layout_params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
getSupportActionBar().setCustomView(custom_view, layout_params);
你的意思是我应该把这两种布局结合在一起,只使用setCustomView,对吗?但是,我怎样才能在中间设置图像呢?/无论如何,谢谢你的提示:)你应该像这样膨胀你的定制视图:CuuthVIEW =充气器。充气(R.Sudio.CuffyVIEW);然后可以使用custom_view.findviewbyd(R.id.image)查找图像;